【发布时间】:2014-01-07 09:54:35
【问题描述】:
我正在做一个指针练习,在试验代码时遇到了一个疑问。为什么数组中的这些内存地址都增加了4?
例如我的输出是
Value of var[0] = 2686720
Value of var[1] = 2686724
Value of var[2] = 2686728
代码如下:
#include <stdio.h>
#include <conio.h>
main ()
{
int var[3]= {10,100,200};
int *ptr[3],i;
for (i = 0; i < 3; i++)
{
ptr[i] = &var[i]; // assign the address of integer.
}
for (i = 0; i < 3; i++)
{
printf("\n\nValue of var[%d] = ",i);
printf("%d",ptr[i]); //var[0]=10 var[1]=100 var[2]=200
}
getch();
return 0;
}
【问题讨论】:
-
如果您的实际意思是“地址”,为什么还要在输出中写“值”?我想这让每个人都感到困惑。
标签: c arrays pointers allocation memory-address