扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
以上代码中,sum函数在上面,main函数在下面,在main函数中就可以调用sum函数。
如果sum函数定义在main函数后面,则需要在main函数前面声明sum函数。即在main函数前面写:void sum(int begin, int end);
C语言中,习惯将函数声明放在main函数前面,将函数定义放在main函数后面。如下面所示。
这点和java有很大区别。
在java中,方法存放在同一个类中,只要在一个类中就可以相互调用。即在同一个类中,不论方法的定义在前还是后,main方法都可以调用,不分前后。
此外,c语言和java的区别还有:
1、变量赋值
int a = 5;
double d = 8.88;
a = d;
以上代码第三行,将double类型的变量赋值给int类型,在C语言中,直接将小数部分舍弃掉,即a =8 。同样的代码,在java中是错误的,将double类型的值赋值给int类型的变量,即需要强制转换成int,强制类型转换需要写明类型,正确的写法是a = (int)d;
2、bool类型
c语言中bool类型的存储和输出是整数,是真用1表示,假用0表示。
,输入和输出都用%d的格式。使用bool类型需要添加头文件,所以不如直接用int类型,对于写选择条件和循环条件时可直接用返回的int类型作为条件。
java中bool类型只有两个值,true和false,并且不可以进行数据类型转换,所以对于选择和循环条件必须是bool类型,不可以和1,0等价。
3、函数的定义的顺序
在java中,同一个类中,方法的定义不分前后顺序,都可以调用。在C语言中分顺序,后面的函数才可以调用前面的函数。一般习惯将main函数放在最前面,调用其它函数。其它函数声明在main函数之前,定义在main函数之后。
4、函数调用时类型不匹配
C语言中类型不匹配会自动转换为需要的类型。
在C语言中正常运行,直接将double转换成了int类型,没有报错。
这种情况在C++和java中都是错误的。因为double转换为int是需要强制转换的,丢失了精度无法实现自动转换。
上面代码中,形参是double类型,传入的实参是int类型,int转换为double,在C语言中没有错误。
在java中,由于实参是int类型,int转换成double可以自动转换,所以在java中不会报错。
交换值:
上述代码中swap函数是交换a和b的值,交换的值在swap函数执行结束后就失效了,所以,在main函数中调用swap函数,没有实现交换功能,是因为出了函数就失效了。
调用swap函数,实际上是将5赋值给swap函数的a,将6赋值给b,而swap函数中的a和b只是形参,一个名称而已,和main中的a和b没有关系。swap函数中的a和b交换了,但main中的a和b没有变化。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流