将字符串文字(例如“ABC”)分配给char a [] ex。
时char a[] = "ABC";
它具有做
的效果char a[4] = {'A','B','C','0'};
将它传递给函数参数
时,同样适用离。
int f(char a[]);
VS
int f(char *a);
答案 0 :(得分:5)
将它传递给函数参数
时,同样适用
没有;一般来说,在C中你不能直接按值传递数组;函数的每个数组参数实际上都被编译器解释为指针参数,即当你写
时int f(char a[]);
编译器看到了
int f(char *a);
(即使您指定了数组的尺寸,也是如此)
顺便说一下,
它具有做
的效果char a[3] = {'A','B','C"};
实际上,它具有以下效果:
char a[4] = {'A','B','C', 0};
答案 1 :(得分:2)
不,因为这两个函数声明都是相同的。两者都声明了一个带有char
指针的函数,在这两种情况下,参数都会被一个指向字符串文字的第一个元素的指针初始化。