|
100鱼币
本帖最后由 YiMingC 于 2019-4-29 21:29 编辑
问题一:
对于:
int (*p2)[5] = &temp;
为什么是对地址再取址...难道地址还有专门的地址来储存吗...        
不太清楚这里是应该把temp当作单纯的数组名来看还是数组名的值来看...
- #include <stdio.h>
- int main()
- {
- int temp[5] = {1, 2, 3, 4, 5};
- int (*p2)[5] = &temp;
- int i;
- for (i = 0; i < 5; i++)
- {
- printf("%d\n", *(*p2 + i));
- }
- return 0;
- }
复制代码
问题二:
代码如下:
第5行的 “char *(*p)[5] = &array;” 这段声明看不太懂,这是什么?数组指针吗...?p又是什么...
- #include <stdio.h>
- int main()
- {
- char *array[5] = {"FishC", "Five", "Star", "Good", "WoW"};
- char *(*p)[5] = &array;
- int i, j;
- for (i = 0; i < 5; i++)
- {
- for (j = 0; (*p)[i][j] != '\0'; j++)
- {
- printf("%c ", (*p)[i][j]);
- }
- printf("\n");
- }
- return 0;
- }
复制代码
问题三:
课后作业的一段原文:
argv(第二个形参)必须是指向字符指针的指针(注意:它不是指针数组,但你可以理解为指向一个字符指针数组名或字符串数组
我的问题在于:
既然argv不是指针数组,
那为什么可以理解为指向一个字符串数组,这前后不矛盾吗?
问题比较多,麻烦大家了!
“char *(*p)[5] = &array;”
p是一个指针,这个指针指向一个数组,这个数组有5个元素,每一个元素都是指针,每一个指针都指向一个char
或者
p是一个指针,这个指针指向一个数组,这个数组有5个元素,每一个元素都是指针,都是char *
^_^
|
最佳答案
查看完整内容
“char *(*p)[5] = &array;”
p是一个指针,这个指针指向一个数组,这个数组有5个元素,每一个元素都是指针,每一个指针都指向一个char
或者
p是一个指针,这个指针指向一个数组,这个数组有5个元素,每一个元素都是指针,都是char *
^_^
|