小编Ami*_*pta的帖子

*ptr [10]和(*ptr)[10]之间的差异

对于以下代码:

    int (*ptr)[10];
    int a[10]={99,1,2,3,4,5,6,7,8,9};
    ptr=&a;
    printf("%d",(*ptr)[1]);
Run Code Online (Sandbox Code Playgroud)

它应该打印什么?我期待这里的垃圾值,但输出是1.
(我为此得出结论,初始化这种方式指针数组即ptr[10]开始指向a[10]按顺序排列的元素).

但是这个代码片段呢:

int *ptr[10];
int a[10]={0,1,2,3,4,5,6,7,8,9};
*ptr=a;
printf("%d",*ptr[1]);
Run Code Online (Sandbox Code Playgroud)

它给出了分段错误.

c pointers

12
推荐指数
2
解决办法
5万
查看次数

输出应该是什么?

我期待着这里.但它显示了g.为什么?

char *c="geek"; 
printf("%c",++*c);
Run Code Online (Sandbox Code Playgroud)

c pointers

4
推荐指数
1
解决办法
94
查看次数

标签 统计

c ×2

pointers ×2