void main()
{
int a=10;
int *j;
*j=&a;
b[]={1,2,3,4};
b=j;
}
Run Code Online (Sandbox Code Playgroud)
有人问我这个程序有什么问题,我只是很困惑,一切似乎都很好。只是好奇想知道。
打开所有编译器警告和错误。然后它会准确地告诉你程序有什么问题。
*j = &a;是约束违反。*j具有类型int但&a具有int *不兼容的类型。
您可能意味着j = &a;其将指向j到a。
b[]={1,2,3,4};是语法错误。也许你的意思是int b[]={1,2,3,4};which 会声明一个数组。
b=j;是一个约束冲突,因为b是一个数组并且数组不能分配给。(技术上:因为b是一个数组,衰减到一个右值并且右值不能被赋值)。
但是,j = b;没关系,它会j指向b;的第一个成员。
void main()是非便携式的,应该是int main()。