C语言24课问题
#include<stdio.h>int main()
{
int x = {0};
int i,j,k = 0;
for (i = 0;i < 4;i++)
{
for (j = 0;j < 5;j++)
{
x = k++;
}
}
//证明二维数组每一个元素的跨度
printf("sizeof int = %d\n",sizeof(int));
printf("x: %p\n",x);
printf("x + 1: %p\n",x + 1);
putchar('\n');
//*(x + 1)的语法堂x是否一致
printf("*(x + 1) = %p\n",*(x + 1));
printf("x = %p\n",x);
printf("&x = %p\n",&x);//看看是不是符合二维数组的第一层元素是否符合数组就是第一个元素的特征
printf("**(x + 1) = %d\n",**(x + 1));
return 0;
}
这里的**(x + 1)不应该是6吗为什么编译的结果是5 我有思考了一下应该是k++的问题所以是从0开始的就是5 帅周 发表于 2021-5-18 21:03
我有思考了一下应该是k++的问题所以是从0开始的就是5
对 是因为从0开始的--》 第一层循环4次k变成了4
然后第二成i变成1,k其实已经是5了--》所以打印5
因为k是再循环体外边定义并赋值为0的,所以会累加
页:
[1]