当前位置: 技术问答>linux和unix
数组实参传递给指针形参的问题
来源: 互联网 发布时间:2017-02-13
本文导语: 今天写了一个小程序,大致如下: int main(void) { char *src = "InformationSecurity"; char dst[30] = {0}; int key = 5; dst = ety_copy(src, dst, key); printf("the dst:%sn", dst...
今天写了一个小程序,大致如下:
int main(void)
{
char *src = "InformationSecurity";
char dst[30] = {0};
int key = 5;
dst = ety_copy(src, dst, key);
printf("the dst:%sn", dst);
return 0;
}
函数的原型:char * ety_copy(char *src, char *dst, int key);
为什么我在编译的时候会出现以下的情况,烦请大侠解惑。这时候的数组名应该和指针是等价的啊
[root@Liu-Michael work]# gcc ety_copy.c
ety_copy.c: 在函数‘main’中:
ety_copy.c:43:6: 错误:将‘char *’赋值给‘char[30]’时类型不兼容
int main(void)
{
char *src = "InformationSecurity";
char dst[30] = {0};
int key = 5;
dst = ety_copy(src, dst, key);
printf("the dst:%sn", dst);
return 0;
}
函数的原型:char * ety_copy(char *src, char *dst, int key);
为什么我在编译的时候会出现以下的情况,烦请大侠解惑。这时候的数组名应该和指针是等价的啊
[root@Liu-Michael work]# gcc ety_copy.c
ety_copy.c: 在函数‘main’中:
ety_copy.c:43:6: 错误:将‘char *’赋值给‘char[30]’时类型不兼容
|
错误在 dst = ety_copy(src, dst, key);
ety_copy(src, dst, key)函数的返回值是一个字符指针变量,而dst是字符数组的首地址,是一个常量,是不允许赋值的。
ety_copy(src, dst, key)函数的返回值是一个字符指针变量,而dst是字符数组的首地址,是一个常量,是不允许赋值的。
|
dst = ety_copy(src, dst, key);
把前面的dst去掉
ety_copy(src, dst, key);
把前面的dst去掉
ety_copy(src, dst, key);