为什么这是对的?
#include<iostream>
using namespace std;
int main()
{
char *s="raman";
char *t="rawan";
s=t;
cout<<s;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但这是错的?
#include<iostream>
using namespace std;
int main()
{
char s[]="raman";
char t[]="rawan";
s=t;
cout<<s;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Kei*_*son 15
在第一个例子中,s=t指针分配.在第二种情况下,s=t尝试将指针值(由数组表达式的隐式转换或"衰减"产生t)分配给数组对象.C++不允许数组赋值.
C和C++在这个领域恰好相似; comp.lang.c FAQ的第6节很好地介绍了数组和指针之间的关系.
| 归档时间: |
|
| 查看次数: |
1082 次 |
| 最近记录: |