概述
java与c语法上的区别是什么?
1、标识符:
C可用的标识符为数字、大小写字母、下划线,不能以数字开头;【推荐教程:C语言教程】
Java可用的标识符除了C的三种以外,多一种美元符号($),同样不能以数字开头。【推荐学习:java课程】
2、关键字:
C中的关键字有:
Java中的关键字有:
3、数据类型:
C中的数据类型有:
基本类型:整型(基本整型int、短整型short[int]和长整型long [int]以及有符号型[signed]、无符号型unsigned)、字符型[signed/unsigned ]char、浮点型(单精度型float、双精度型double和长双精度long double)、枚举类型
构造类型:数组类型、结构体类型、共用体类型
指针类型
空类型
注意下各类型一般所占字节数:
Java中的数据类型:
基本类型:字符型(char)、数值型(整型(字节型byte、短整型short、整型int、长整型long)、浮点型(单精度型float、双精度型double))、布尔型(boolean(true或false))
复合类型:类、接口、数组
注意下各类型存储所占字节数:
4、常量和变量
1)常量
Java和C中整型常量定义相同,除长整型数据在其末尾加l或L外,其他类型均直接显示数值。C中无符号常量在其后加u或U。对于不同进制,十进制直接显示最高位不能有0,八进制以0开头,十六进制以0x或0X开头。
对于浮点类型,C和Java均只能采用十进制表示。可使用小数形式和指数形式,指数形式表示时小数与指数之间用e或E分隔。注意Java中要求单精度后要加f或F,双精度后要加d或D以示区分。
字符型常量都是以单引号引起来的单个字符或转义字串表示。特别注意,C中字符型只能表示ASCII码从0~255的字符,Java中使用Unicode编码2字节存储单元可以表示特殊字符,表示unicode编码时使用u加4位16进制字串。
布尔类型只有Java中才有,需特别注意。
Java中常量用关键字final修饰,一经赋值不可更改;C中表示不可更改的关键字是const,其修饰的变量(注意是变量,不是常量)必须在定义时赋初值,另外用#define定义的宏常量没有类型。
2)变量
Java和C中变量的定义基本相同,即:
数据类型变量名[ = 变量初值];
登录后复制
变量可赋初值也可不赋,但Java中长整型和浮点型数后要加相应识别标志(如l、f)。
特别注意:由于编译器的不同,C申明变量要放在可执行语句之前,否则可能发生编译错误。
5、逻辑运算符和位运算符
C和Java中都有的逻辑运算符&&
、||
、!
三种,且意义相同,区别在于C中运算结果为0和非0,Java中只能是ture或false。Java中还存在&、|、^(异或),&和&&、|和||的区别在于前者是非捷径运算符而后者是捷径运算符,即&前后都做判断,&&前为假不做后面的判断,|前后都做判断,||前为真不做后面的判断。^表示两者相同为假。
C和Java中都有的位运算符是:&
、|
、^
、~(取反)
、<<(左移)
、>>(右移)
,意义基本相同。负数的右移运算在C中视不同系统有所不同(可能是算术右移也可能是逻辑右移),而Java中>>表示的是算术右移,即最高位填充符号位。Java中逻辑右移(无符号右移)运算符是>>>,采用补码右移,高位添0。
PS:有心的读者可能会发现,如果你定义了一个byte或者short类型的负数,如-10,采用>>>方法进行无符号右移后输出的结果是-5,按照上面说的高位添0应该是正数。而int或long类型的就不会是负数,这是为什么呢?我认为这是因为Java在进行>>>运算时采用的最低数据类型是int类型,导致高位数据全为1(计算机内存储的数据是以补码存储的,所以负数的byte或short类型转成int类型高位全填充1),移位时高位的最后一个1移到低位的第一位,然后截取成我们定义的数据类型(byte或short),所以我们看到的数还是负数。从这里我们可以看出,在byte和short类型的数据做>>>运算的时候可能得不到我们想要的值,千万注意。
6、数组
C中数组的定义如下:
类型说明符数组名[常量表达式];
登录后复制
定义可与初始化同时进行,如:int a[10] = {0,1,2,3,4,5,6,7,8,9};
中括号内的常量可以省略。
Java中数组定义有两种方式:
数据类型数组名[];
//或
数据类型 []数组名;
登录后复制
定义和初始化可同时进行,如:int []a = {0,1,2,3,4,5,6,7,8,9};
注意:Java中数组如果在定义时没有进行初始化,在进行初始化的时候需要先分配内存,即:
数组名 = new 数据类型[常量表达式];
登录后复制
也可在定义同时进行内存分配:
数据类型数组名[] = new 数据类型[常量表达式];
登录后复制
C和Java都不支持变长数组,引用的时候都是 数组名[下标]
。区别是:
多维数组中,数组元素都是按行排列的。
7、语句
C和Java语句区别不大,主要是:
1)方法/函数调用时C直接调用函数,Java调用方法时方法名前面要加对象名。
2)C中两个嵌套的复合语句同时定义同名变量是可以的,而Java不可以。
以上就是java与c语法上的区别是什么?的详细内容,更多请关注靠谱客其它相关文章!
最后
以上就是欣慰铃铛为你收集整理的java与c语法上的区别是什么?的全部内容,希望文章能够帮你解决java与c语法上的区别是什么?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复