为了账号安全,请及时绑定邮箱和手机立即绑定

挂满与return返回值的小问题

#include <stdio.h>

void main() 

{

    int a = 5;

    printf("a = %d\n", a);

    

    return 0;

}

为什么划线加粗部分的“0”可以改为“a”或者“a=a”或者“a=5”或者“5”,而不能改为“b""c""d"...“1”“2”“3”...或者”a=“"int a"呢?

正在回答

3 回答

main函数的声明是有规定的,只有下面两种形式,其他的都不规范:

int main(void)
int main(int argc, char *argv[])


你打算改成什么呢? 请写成代码,你上面的表述不清楚。

0 回复 有任何疑惑可以回复我~
#1

学长就是帅 提问者

#include <stdio.h> int main() { int a = 5; printf("a = %d\n", a); return 0; } 为什么划线加粗部分的“0”可以改为“a”或者“a=a”或者“a=5”或者“5”,而不能改为“b""c""d"...“1”“2”“3”...或者”a=“"int a"呢?
2015-04-10 回复 有任何疑惑可以回复我~
#2

onemoo 回复 学长就是帅 提问者

函数声明要返回一个int型的值。 0本身就是int型的字面值,没问题。 a也是int型变量,也没问题。 a=a 或 a=5 这是赋值语句,这个语句本身也是有值和类型的。赋值语句的值(类型)就是等号左侧变量的值(类型)。在这里也是int型(就是a),所以也可以写在return后面。 return b,那这个b是什么?? 你根本就没有声明这个变量,自然不能使用。
2015-04-10 回复 有任何疑惑可以回复我~
#3

学长就是帅 提问者 回复 onemoo

那么是不是说return语句后面代码类型与函数类型是一致的,即可为正确;如果类型不一致,即代码错误。 谢谢
2015-04-11 回复 有任何疑惑可以回复我~
#4

onemoo 回复 学长就是帅 提问者

是的。C是一种强类型语言,要时刻注意类型问题。 不过C有类型转换机制,如果那个类型可以转换成你声明的返回类型,则会进行类型转换,然后返回。
2015-04-11 回复 有任何疑惑可以回复我~
查看1条回复

那我将void改为int 但还是上个return返回值的问题,求解答

附:那网址里讲的内容好高端,我听不懂。但还是非常感谢。

0 回复 有任何疑惑可以回复我~

应该说你改成什么都不对,因为你写的是void main(),这样写是不能写return返回值的。这个你可以看一下http://imooc.com/video/6207这个内容

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926022    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

挂满与return返回值的小问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信