C和JAVA的语法区别

该博客记录了2024年4月15日学习C语言和Java的过程。涵盖数据类型、标识符、流程控制语句、输入输出、switch语句、数组等内容,还着重介绍了Java面向对象的基础、进阶和高级知识,包括类成员、特征及关键字使用等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习记录

2024.4.15,记录一些关于学习java过程的,防止后续遗忘,方便回顾



一、数据类型

C语言

基本数据类型:
整型:short2B) int(4B) long(8B)
浮点型:float4B) double8B)
字符型:char1B)

构造数据类型:
结构体(struct)、数组(arry)、共用体(union)枚举(enum)

指针数据类型(*)、空类型(void)

共用体(union)举例:
	 //比如成绩不同的表示方法  95分  A档  95.0分 union的大小与最大的数据类型相同,一次只能一个变量有值
	union{
   
       
	int a;
	float b;
	char c;
	}

枚举(enum)举例:
	enum EN{
   
   
	a,//0
	b,//1
	c//2
};

JAVA

基本数据类型:
整型:byte(1B) short2B) int(4B) long(8B)//byte不同
浮点型:float4B) double8B)
字符型:char2B)//不同点     char a='男'
布尔型:boolean4B)
引用数据类型:
类:class
接口:interface
数组:array[]
枚举:enum
记录:record

JAVA,String为引用数据类型,俗称字符串,String s="abc"    
判断String A,B是否相同用A.equal(B)方法,不是A==B

c语言中,使用的是char arr[N]来当字符串,char  arr[]="abc",默认在字符串后面添加'\0',
不可以arr="abc"(arr为地址常量),可以使用函数操作:
  strcpy  (A,B):把B中字符复制到A中去 
  strcat  (A,B):把B拼接到A后面去
  strlen(A):计算A的长度 不包含 '\0' 
  strcmp(A,B):AB长度比较 A>B  结果大于0,反之<0,相等=0.

二、标识符

C语言

字母 数字 下划线 ,数字不可以开头。不能是关键字

JAVA

由26个英文字母大小写,0-9 ,_或 $组成
数字不可以开头。
不可以使用关键字和保留字,但能包含关键字和保留字。
Java中严格区分大小写,长度无限制。
标识符不能包含空格。

JAVA命名规范
包名:多单词组成时所有字母都小写:xxxyyyzzz。
例如:java.lang、com.atguigu.bean
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz 大驼峰
例如:HelloWorld,String,System等
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz 小驼峰
例如:age,name,bookName,main,binarySearch,getName
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
例如:MAX_VALUE,PI,DEFAULT_CAPACITY

三、流程控制语句

顺序、分支(if-else、switch-case)、循环(for、do{}while、while{})

C语言

字母数字下划线 ,数字不可以开头。不能是关键字

JAVA

由26个英文字母大小写,0-9 ,_或 $组成
数字不可以开头。
不可以使用关键字和保留字,但能包含关键字和保留字。
Java中严格区分大小写,长度无限制。
标识符不能包含空格。

JAVA命名规范
包名:多单词组成时所有字母都小写:xxxyyyzzz。
例如:java.lang、com.atguigu.bean
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz 大驼峰
例如:HelloWorld,String,System等
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz 小驼峰
例如:age,name,bookName,main,binarySearch,getName
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
例如:MAX_VALUE,PI,DEFAULT_CAPACITY

break语句用于终止某个语句块的执行
{
   
       ……	 
	break;
	 ……
}

break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块 
	label1: {
   
      ……        
	label2:	     {
   
      ……
	label3:			 {
   
      ……
				           break label2;
				           ……
					 }
			     }
			} 

四、输入输出

C语言

输出:printf("%d\n",a);
      printf("%10.2f\n",b);//占10个位置,包含小数点,小数后面占两位(.2f说明小数后面占两位,长度变化)
输入:scanf("%d%s%l%f%c",a,b,c,d,f);//除了%c都可以分离‘ ’和‘\n’  

JAVA

输出:System.out.println("samll");
输入:Scanner 变量1= new Scanner(System.in);
     数据类型  变量2=变量1.next() / nextXxx();//根据需要安排不同数据类型;可以先定义,后赋值!
     变量1.close();//关闭资源
     
键盘输入代码的四个步骤:
1. 导包:`import java.util.Scanner;`
2. 创建Scanner类型的对象:`Scanner scan = new Scanner(System.in);`
3. 调用Scanner类的相关方法(`next() / nextXxx()`),来获取指定类型的变量
4. 释放资源:`scan.close();

例如:
    Scanner scanner = new Scanner(System.in);//System.in默认代表键盘输入
        //③根据提示,调用Scanner的方法,获取不同类型的变量
        System.out.print("请输入你的网名:");
        String name = scanner.next();//.next():为String类型

        System.out.print("请输入你的年龄:");
        int age = scanner.nextInt();

        System.out.print("请输入你的体重:");
        double weight = scanner.nextDouble();

        System.out.print("你是否单身(true/false):");
        boolean isSingle = scanner.nextBoolean();

        System.out.print("请输入你的性别:");
        char gender = scanner.next().charAt(0);//先按照字符串接收,然后再取字符串的第一个字符(下标为0)

        System.out.println("你的基本情况如下:");
        System.out.println("网名:" + name + "\n年龄:" + age + "\n体重:" + weight + 
                           "\n单身:" + isSingle + "\n性别:" + gender);
        //④ 关闭资源
        scanner.close();

五、switch语句

JAVA
switch(表达式)中表达式的值必须是下述几种类型之一:
byte,short,char,int,枚举 (jdk 5.0),String (jdk 7.0);
C语言
switch(表达式)中表达式的值必须是 整型 和 字符型,表达式可以是表达式 但必须是一个常量
共同点:case子句中的值必须是常量,不能是变量名或不确定的表达式值或范围;

switch(表达式){
        case 常量值1:
            语句块1;
            //break;
        case 常量值2:
            语句块2;
            //break;
        // ...
       [default:
            语句块n+1;
            break;
       ]
    }

六、数组

JAVA

2. 数组(JAVA)
    2.1静态初始化:如果数组变量的初始化和数组元素的赋值操作同时进行
        一维数组声明和静态初始化格式1:
        数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3,...};
        或
        数据类型[] 数组名;
        数组名 = new 数据类型[]{元素1,元素2,元素3,...};
        注意:Java语言中声明数组时不能指定其长度(数组中元素的个数)。 例如: int a[5];
    2.2动态初始化:数组变量的初始化和数组元素的赋值操作分开进行
        数组存储的元素的数据类型[] 数组名字 = new 数组存储的元素的数据类型[长度];
        或
        数组存储的数据类型[] 数组名字;
        数组名字 = new 数组存储的数据类型[长度];
    2.3数组的长度:
        JAVA:arr.length 指明数组arr的长度(即元素个数)
        C;sizeof(arr)
    2.4 二维数组 -->每行长度可能不一致
       1 静态初始化:元素的数据类型[][] 二维数组的名称;
        2 动态初始化:
            格式1:规则二维表:每一行的列数是相同的
            int[][] arr = new int[3][2];
            
            格式2:不规则:每一行的列数不一样
            //(1)先确定总行数
            元素的数据类型[][] 二维数组名 = new 元素的数据类型[总行数][];
            //此时只是确定了总行数,每一行里面现在是null
            //(2)再确定每一行的列数,创建每一行的一维数组
            二维数组名[行下标] = new 元素的数据类型[该行的总列数];
            //此时已经new完的行的元素就有默认值了,没有new的行还是null
            //(3)再为元素赋值
            二维数组名[行下标][列下标] = 值;
            
       3 遍历规则:
            for(int i=0; i<二维数组名.length; i++){ //二维数组对象.length
                for(int j=0; j<二维数组名[i].length; j++){//二维数组行对象.length
                    System.out.print(二维数组名[i][j]);
                }

代码举例:

一维数组

 //数组的定义
        //静态定义
        int[] arr = new int[]{
   
   1, 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南风如意

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值