4,40
80,8
10,10
8,80
40,4
4,4
char *p[10]; // p[10], p 是数组,维度为10; // *(p[10]), 数组的内容为指针; //char *p[10] 该指针数组里的指针指向char类型的对象 char (*p1)[10]; // *p1 p1为指针 // (*p1)[10], 他指向一个数组 //char (*p1)[10] 该数组为char类型数组 char a[10]={'a'}; p1 = &a; cout <<(*p1)[0]<<endl; // 'a'
char *p[10]; /* p是一个指针数组 */ char(*p1)[10]; /* p1是一个指向“包含10个char变量的数组”的数组指针 */
p和[]结合就是数组,和*结合就是指针
还有一点额外话需要注意下:如果把第一个p传递给某个函数,在函数中再调用sizeof的话,结果为4,这是因为不能把整个数组作为参数传递给函数,此时实际上传递的是一个指针
在64位系统下,分别定义如下两个变量:char *p[10]; char(*p1)[10];
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题