开发平台(Platform): (Ex: Win10, Linux, ...)
win7
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
Dev C++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
[Error] cannot convert 'int (*)[size]' to 'int*' in assignment
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
[Error] cannot convert 'int (*)[size]' to 'int*' in assignment
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
int main()
{
int i,a[5] = {32,16,9,7,0};
cout<<"a = "<<a<<endl;
cout<<"&a = "<<&a<<endl;
cout<<"&a[0] = "<<&a[0]<<endl;
int sum = 0;
sum = 0;
int *ptr;
ptr = &a; // why this is not acceptable
// ptr = &a[0];
// ptr = a;
for(i = 0;i<5;i++)
{
sum += *ptr;
ptr += 1;
}
return 0;
}
补充说明(Supplement):
ptr = &a; // why this is not acceptable
// ptr = &a[0];
// ptr = a;
只有第一行给出错误讯息,后两行都可以,但我不明白为什么,
从上面print out 的结果看起来
a == &a == &a[0]
如果是单个变量 int *ptr= &a; 给过
不明白为什么阵列a不能。
谢谢解说 感恩