C语言中函数的先后关系,java和C语言的语法区别

C语言中函数的先后关系,java和C语言的语法区别_第1张图片

以上代码中,sum函数在上面,main函数在下面,在main函数中就可以调用sum函数。

如果sum函数定义在main函数后面,则需要在main函数前面声明sum函数。即在main函数前面写:void sum(int begin, int end);

C语言中,习惯将函数声明放在main函数前面,将函数定义放在main函数后面。如下面所示。

C语言中函数的先后关系,java和C语言的语法区别_第2张图片

这点和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语言中函数的先后关系,java和C语言的语法区别_第3张图片

在C语言中正常运行,直接将double转换成了int类型,没有报错。

这种情况在C++和java中都是错误的。因为double转换为int是需要强制转换的,丢失了精度无法实现自动转换。

C语言中函数的先后关系,java和C语言的语法区别_第4张图片

上面代码中,形参是double类型,传入的实参是int类型,int转换为double,在C语言中没有错误。

在java中,由于实参是int类型,int转换成double可以自动转换,所以在java中不会报错。 

交换值:

C语言中函数的先后关系,java和C语言的语法区别_第5张图片

上述代码中swap函数是交换a和b的值,交换的值在swap函数执行结束后就失效了,所以,在main函数中调用swap函数,没有实现交换功能,是因为出了函数就失效了。

调用swap函数,实际上是将5赋值给swap函数的a,将6赋值给b,而swap函数中的a和b只是形参,一个名称而已,和main中的a和b没有关系。swap函数中的a和b交换了,但main中的a和b没有变化。

 

 

你可能感兴趣的:(从C语言,java,c语言,开发语言)