gpt4 book ai didi

c - 在 C 中寻址

转载 作者:行者123 更新时间:2023-12-04 08:32:23 26 4
gpt4 key购买 nike

#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{
int x = 2;
int *pointer2 = &x;
int number = &x;
printf("%x\n",number );
printf("%x\n",number+1 );
printf("%x\n",pointer2 );
printf("%x\n",pointer2+1);

return EXIT_SUCCESS;
}

我从 gcc 收到警告,“初始化从指针生成整数而不进行强制转换 [默认情况下启用]”用于变量号,但是当我编译时我得到以下输出:

5da24540
5da24541
5da24540
5da24544

显然上面的事情并没有发生,因为我们可以在前两行输出中看到地址只增加了 1 而在第二种情况下增加了 4。另外请解释 & 返回可以分配给其他变量的地址像 int 一样,或者它本身就是一个指针,只能分配给指针类型。

最佳答案

number是一个 int , 用 x 的地址初始化(使 int 从地址“不强制转换”- 警告告诉您,这可能不是您想要的)- 如果您增加它,它将增加 1。

pointer2是指向 int 的指针(使用与 x 相同的地址初始化),增加它的增量为 int大小 (这种行为称为“指针算术”)。

关于c - 在 C 中寻址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20519396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com