二维数组指针问题
{:10_283:}#include <stdio.h>
int main(){
int array={0};
int i,j,k=0;
for(i=0;i<20;i++){
for(j=0;j<5;j++){
array=k++;
}
}
printf("array+1 what:%p\n",array+1);
printf("*(array+1):%p",*(array+1));
return 0;
}运行结果:为什么是一样的?
{:10_319:}
%p本来就是打印地址的转义符第一个是打印array+1的地址第二个是打印array+1值的地址,所以当然是一样的了 这么神奇的么? 小甲鱼的铁粉 发表于 2021-2-3 11:39
这么神奇的么?
{:10_302:} 两个打印的都是array + 1 的地址,所以值一样。
如果想要打印array + 1的值的话, 首先把第二个打印的 %p 改成 %d, 然后*(array + 1)改为**(array + 1)。
(偷偷说一句:外层循环应该是i < 4吧 :p)
页:
[1]