函数返回值的疑问
代码1#include <stdio.h>
void add(int a, int b) {
a + b;
}
int main(void) {
int a = 5, b = 3;
add(a, b);
return 0;
}
代码2
#include <stdio.h>
void add(int a, int b) {
a + b;
}
int main(void) {
int a = 5, b = 3;
printf("%d\n",add(a, b));
return 0;
}
为什么代码1可以通过编译,代码2不能(不允许使用void类型) 因为你的第二段代码吧add函数的调用放在了一个需要int类型数据的位置
printf("%d\n",xxx);
因为printf的输出内容中有格式化字符%d,因此 xxx 这里需要是一个int类型的数据,这是printf函数的规则。
但是你这里却给了一个无返回值的函数调用,所以就出错了
需要给一个返回int类型的函数调用
#include <stdio.h>
int add(int a, int b) {
return a + b;//函数返回一个int类型的数据
}
int main(void) {
int a = 5, b = 3;
printf("%d\n",add(a, b));//这里将add函数调用后的返回值输出
return 0;
}
页:
[1]