Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C语言中将字符串文本传递给函数_C_Arrays_Pointers - Fatal编程技术网

在C语言中将字符串文本传递给函数

在C语言中将字符串文本传递给函数,c,arrays,pointers,C,Arrays,Pointers,将字符串文字(如ABC)指定给char a[]ex时 char a[] = "ABC"; 它具有做某事的效果 char a[4] = {'A','B','C','0'}; char a[3] = {'A','B','C"}; 当您将其传递给函数参数时,是否也适用同样的情况 前 vs 否,因为这两个函数声明是相同的。两者都声明了一个函数,该函数使用指向char的指针,并且在这两种情况下,参数都使用指向字符串文本的第一个元素的指针进行初始化 当您将其传递给函数参数时,是否也适用同样的

将字符串文字(如ABC)指定给char a[]ex时

char a[] = "ABC";
它具有做某事的效果

char a[4] = {'A','B','C','0'};
char a[3] = {'A','B','C"};
当您将其传递给函数参数时,是否也适用同样的情况

vs


否,因为这两个函数声明是相同的。两者都声明了一个函数,该函数使用指向char的指针,并且在这两种情况下,参数都使用指向字符串文本的第一个元素的指针进行初始化

当您将其传递给函数参数时,是否也适用同样的情况

没有;一般来说,在C语言中,不能直接按值传递数组;编译器实际上会将函数的每个数组参数解释为指针参数,即在编写时

int f(char a[]);
编译器看到

int f(char *a);
即使指定了数组的维度,也同样适用

顺便说一下

它具有做某事的效果

char a[4] = {'A','B','C','0'};
char a[3] = {'A','B','C"};
实际上,它的作用是:

char a[4] = {'A','B','C', 0};

ABC是字符[4]而不是字符[3]您指的是字符串,不是字符串文字。