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

-7 c arrays pointers

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

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

M.M*_*M.M 5

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

*j = &a;是约束违反。*j具有类型int&a具有int *不兼容的类型。

您可能意味着j = &a;其将指向ja

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

b=j;是一个约束冲突,因为b是一个数组并且数组不能分配给。(技术上:因为b是一个数组,衰减到一个右值并且右值不能被赋值)。

但是,j = b;没关系,它会j指向b;的第一个成员。

void main()是非便携式的,应该是int main()