在32位机器上执行c程序

时间:2016-10-02 11:14:16

标签: c

在地址从1000开始的32位系统上,将是以下地址值?

int main()
{
  int a[10];
  a;
  a++;
  &a+1;
}

我试图将相同的内容打印到print语句中,但这给了我错误。

1 个答案:

答案 0 :(得分:0)

您无法增加固定大小数组的值,例如int a[10]char str[10]。指针上的地址增量是可能的。 例如

char *a="abcd";
printf("%p",a); //prints the address of a lets take 1000
a++; //increments the address by 1( size of character is 1 byte);
printf("%p",a);  //prints 1001

但是在整数的情况下,例如

int *a={1,2,3,4};
printf("%p",a); //prints the address of a, lets take 1000
a++;
printf("%p",a) //prints 1004 (because the size of integer in 32 bit machine is 4 bytes.