c - 在 32 位机器上执行 C 程序

标签 c

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

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

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

最佳答案

您无法增加固定大小数组的值,例如 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.

关于c - 在 32 位机器上执行 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39816406/

相关文章:

c - 如果(fork())fork()

c - 在 C 上使用 pthreads 实现屏障

c - blink-matching-paren 在 readline 提示中不起作用

C 编程数组索引越界

c - Linux Port 总是写什么

c - 为什么我的小程序崩溃了?

c - fgets() 和 gets() 的使用

python - 销毁 PyCapsule 对象

c - 逐行读取文本文件中的字符串并将其存储在链表中

c - 如何在没有继承的情况下模拟对象(在 C 中)?