int main(void)
{
int a[10];
//a, 和 &a数据类型不一样
//a, 首元素地址,首元素是int, 首元素地址是int *, int * 指向int, +1, +sizeof(int)
//&a, 整个数组的地址,整个数组是int [10], +1, +sizeof(int [10])
printf("a = %d, &a = %d\n", a, &a);
printf("a+1 = %d, &a+1 = %d\n", a + 1, &a + 1);
/*
a = 13892000, &a = 13892000
a+1 = 13892004, &a+1 = 13892040
*/
int b;
//char *指向char, +1, +sizeof(char)
//int *指向int, +1, +sizeof(int)
//步长由数据类型决定,不是由赋值内容决定
printf("%d, %d\n", (char *)&b, (int *)&b);
printf("%d, %d\n", (char *)&b + 1, (int *)&b + 1);
/*
13891988, 13891988
13891989, 13891992
*/
printf("\n");
system("pause");
return 0;
}
指针
最新推荐文章于 2024-10-04 20:54:16 发布