gpt4 book ai didi

C 在数组中存储变量的地址

转载 作者:行者123 更新时间:2023-11-30 21:41:52 25 4
gpt4 key购买 nike

void main()
{
int a=10;
int *j;
*j=&a;
b[]={1,2,3,4};
b=j;
}

有人问我这个程序有什么问题吗,我只是很困惑,一切看起来都很好。只是好奇想知道。

最佳答案

打开所有编译器警告和错误。然后它会准确地告诉你程序出了什么问题。

*j = &a; 违反约束。 *j 的类型为 int,但 &a 的类型为 int *,这是不兼容的。

您的意思可能是 j = &a; ,它将把 j 指向 a

b[]={1,2,3,4}; 是语法错误。也许您的意思是 int b[]={1,2,3,4}; 它将声明一个数组。

b=j; 违反了约束条件,因为 b 是一个数组,并且无法对数组进行赋值。 (从技术上讲:因为 b 是一个数组,所以会衰减为右值并且无法分配右值)。

但是,j = b; 是可以的,它会使 j 指向 b 的第一个成员;

void main() 是不可移植的,它应该是 int main()

关于C 在数组中存储变量的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27916655/

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