课程首页 › 第6部分 › 第81课

第81课 投票表决

第6部分 C++ 的灵魂 · 指针· 知识点:指针、指针与数组

投票表决(指针、指针与数组)

编程世界推出全民编程计划决议,需要10位参会代表投票,如果赞同票数超过80%,表示通过决议。投票规则1代表赞同,-1代表反对,其他数字表示弃权。

投票表决

插图

运行程序,输入:

输出:

决议最终,赞同:8票;反对:1票;弃权:1票

(1)int vote[10]={0}声明了一个长度为10的整数数组,设置初始值全为0。

(2)int*p声明了一个指针变量。

(3)p=vote让指针变量指向数组vote。

敲黑板

指向数组的指针变量称为数组指针变量,一个数组是由一块连续的内存单元组成的,数组名代表了这块连续内存单元的首地址。因此,p=vote意味着将指针变量指向了数组中的第一个元素的地址(也称为数组的首地址)。

p=vote等价于p=&vote[0],它们都将指针变量指向了数组的首元素地址,首地址可以表示为p、vote、&vote[0]。那么元素vote[1]的地址可以表示为p+1、vote+1、&vote[1]。

(4)*(p+i):既然p代表数组首元素的地址,那么p+1就表示第二个元素地址,p+2表示第三个元素地址,以此类推。还可以通过p[i]下标的方式来表示。

敲黑板

假设声明了数组int vote[10]={0}和指针变量int*p,再让指针变量指向数组p=vote,那么可以采用以下两种方法来访问数组元素:

●采用下标法p[i]来访问数组vote的元素。

●采用指针法*(p+i)(相当于地址往后移动i个位置)来访问数组vote的元素。

(5)*(p+i)==1、*(p+i)==-1将数组元素与1和-1进行比较。

巩固练习

(1)阅读下面的程序代码,如果想要输出字母'e',问号出应该选择数字几?()

插图

A.5

B.4

C.3

D.2

(2)阅读下面的程序代码,填写程序的输出结果。

插图

输出:_____________________________________________________________ _

(3)以下程序是对数组num中的所有元素求和,请完善该程序。

#include
using namespace std; int main(){

int num[10]={0,1,2,3,4,5,6,7,8,9}; int*p,sum=0; p=________________; for(int i=0;i<10;i++){

cout<<*(________________); sum +=p[_____________];}
cout<<endl; cout<<sum; return 0;}