C在语法结构上是很多与java相似甚至是相同的,下面罗列二者的异同
1.命名规则
这一点可以说是和java基本属于完全相同的,这里说一下C的命名规则
①:只能由字母,数字,下划线,或者美元符号($)组成
②:不能以数字开头 ;
③:区分大小写,通常变量名和函数名都用小写字母表示;
④:不能和C语言中的32个关键字重名。(关键字查询可以查看上一篇中的介绍C语言中的关键字)
看见没有这些规则和java中的命名规范基本一样
2.分隔符,与注释
分隔符与java相同理解,注释在 C 中主要有两种方式:
①:单行注释 //这里是注释;
②:多行注释 /* 这里是注释 */;
3:main函数看异同
4:控制台打印
printf("%d", a);
这里看到”%d“,想起来java中也有这中写法,对没错在java中的String类中提供了一个叫format(String patten,String repalceValue);的方法。
5:数据类型比较
数据类型的意义
编程的实质就是把变量中保存的内容进行处理,最终返回一个处理后的结果。
而计算机用于保存不同变量的内部结构是不同的,最直接的不同就是在内存中为这个变量申请的空间大小不同。因此,我们在定义变量的时候应该告诉计算机这是一个什么类型的变量,这就是数据类型的意义。
一定有人会问,计算机为啥不给每个变量都分配一个足够大的空间,这样大家就可以使用同一种数据类型了,不用再做区分。这是因为最早的计算机内存是非常有限的,如果你只需要保存很小的数据却用了非常大的空间,那就造成了极大的浪费。如今内存越来越便宜,空间越来越大了,但节省空间开销依然是软件开发的一个重要原则。
话说有些脚本语言比如JavaScript中是淡化数据类型的,所有的变量都使用统一的数据类型var。有兴趣的同学可以了解一下。
先看下java中的数据类型:
java基本数据类型(8种):
char,short,int,long,float,double,char,boolean
C 中的基本数据类型(6种)
char(1个字节),short(2个字节),int(4个字节),long(8个字节),float(4个字节),double(8个字节)
6:运算符
对于加减乘除运算,和java相同。
7:数据类型转换
main()
{
float f;
f = 6.6 / 3;
printf("f = %f\n", f);
f = (int)6.6 / 3;
printf("f = %f\n", f);
f = (int)(6.6 / 3);
printf("f = %f\n", f);
}
运行结果:
8:关系运算符
关系运算符中返回值在java中返回只有两种形式:
true
false
但是在 C 中我们前面有说到 C 中没有boolean类型,因此 C 中使用的是:
1:表示返回的是true;
0:表示false;
准确来说在 C 中0表示false,非0表示true。
9:逻辑运算符
java:中&,||,!(且或非)。
C :中&&,||,!
在 C 中对于逻辑运算符返回的结果和java中是一样的,但是值得注意的是在java中&&和&是有区别的:
java中:
1.&当左边返回的是false右边的直接不运行
2.&&两边都会运行
C中:&主要有两个作用:
1.&a 获取变量a在内存中的地址
2.& 两边同时为真的时候才返回真,否则返回假。
案例
在java中经常面试的时候会遇到这样的一个问题:
有两个数 a 和 b 在不使用第三个变量的情况下交换这两个变量的值
public static void main(String[] args) {
int a = 1;
int b = 2;
a = a + b;
b = a - b;
a = a - b;
System.out.println(a);
System.out.println(b);
}
C 中的方法:
在java中也有异或运算。。。。
其实在java中这种运算也是可以的。
这里不得不说下语言的魅力,"简单,快速"。。
移位运算,三元表达式,",",sizeof()
这里说下最后两个,
",":
int x, y;
x = 50;
y = (x -= 5, x / 5); //y最后返回9,先算括号中左边在算右边
sizeof():
这个函数返回的是字节长度,java中是没有这种方法的,在java中对象才有长度,对于基本数据类型,在java中提供了包装类,那么在 C 中对于基本数据有没有相关的”包装类“?