现在我遇到了以下问题:
int foo(void){
char a[10] = "foo";
char b[10] = {"foo"};
...
}
我使用gdb来检查'a'和'b'的内容,它们看起来完全相同。
变量a和变量b之间有区别吗?
它们是相同的:
C11 §6.7.9 初始化
字符类型的数组可以通过字符字符串字面值或UTF-8字符串字面值进行初始化,可选地用大括号括起来。 字符串字面值的连续字节(包括终止空字符,如果有空间或数组大小未知)初始化数组的元素。
(strcmp(a,b)==0) ? cout << "Same" : cout << "Diff";
指针:
(a==b) ? cout << "Same" : cout << "Diff";
int x = 10; int y = 10;
一样。 - M.M
int i = 10;
和int i = { 10 };
之间没有区别一样。 - Barmar