关于数组和指针的一些问题
图片中红圈部分为什么是4源代码#include <stdio.h>
int main(void)
{
int a = {0};
int i;
for(i = 0; i < 2; i++)
{
printf("%4u %4u %4u %4u %4u\n", a, *(a + i), a + i, a, &a);
printf("%6u %6u %6u %6u %6u\n", sizeof(a), sizeof(*(a + i)), sizeof(a + i), sizeof(a), sizeof(&a));
}
return 0;
}
本帖最后由 82457097 于 2019-4-22 08:15 编辑
4两个都是指针的尺寸
16是二维数组一个维度的尺寸 有四个int
48是整个二维数组的尺寸
不对请指正 a是第一行第一个元素的地址 代表整个二维数组
*(a+i)是第i+1行第一个元素的地址 也代表a的第i行
a+i代表第一行第i+1个元素的地址
ai代表a的i+1行第一个元素的地址 也代表a的第i+1行
&ai代表a的i+1行第一个元素的地址
不对请指正
页:
[1]