2 xyhqqlove xyhqqlove 于 2016.01.23 21:10 提问

invalid use of void expression

void dd(char* c)
{
int i=0;int j;
while (c[i]) i++;
i=i-1;
for(j=0;j<i/2;j++)
swap(c[j],c[i-j]);
}
int main()
{
char c[]="123";
printf("%s",dd(c));
}

4个回答

caozhy
caozhy   Ds   Rxr 2016.01.23 21:12
已采纳

printf("%s",dd(c));
->
dd(c);
printf("%s",c);

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.01.23 21:15

因为你的dd函数定义的返回值为void,而你使用时却将其作为有返回值的函数使用了,代入printf的第一个参数中了。
应该修正你的printf代码,不能打印dd(c)因为它没有返回值的。

yokees
yokees   2016.01.23 22:17

printf("%s",dd(c)); 语句有问题。

printf("%s",字符串指针); 这样才能输出。

dd(c) 返回值为空,也就是 void 类型。printf报错(函数参数无法匹配)

rl529014
rl529014   2016.01.23 21:29

主函数中printf()的输出参数是dd( )子函数的返回值,而子函数的返回值你设置的是void,肯定就出现问题了。
好比我不给你钱,叫你去买东西,你肯定不干,对吧

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!