最近我看到了这段代码.这行不应该是编译错误吗?char arr[4]="Abc";
这里发生了什么?是arr指针吗?将char*复制到堆栈中的数组中?这在所有版本的C++中都是合法的(那么C呢?).我测试并看到这适用于VS和代码垫我相信使用gcc
-edit-为了好玩,我尝试用静态const char*替换"Abc".它给了我一个无效的初始化错误.
int main()
{
int j=97;
char arr[4]="Abc";
printf(arr,j);
getch();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
array = ptr
不是合法的赋值(如果array
有一个数组类型,并ptr
具有相应的指针类型).但是,在您展示的代码中,=
引入了初始化程序,因为它是声明的一部分.这不是一项任务.
初始化char
带有字符串常量的数组是合法的.
归档时间: |
|
查看次数: |
478 次 |
最近记录: |