C语言和JAVA语言的语法小区别

学习记录

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


文章目录

  • 学习记录
  • 一、数据类型
  • 二、标识符
  • 三、流程控制语句
  • 四、输入输出
  • 五、switch语句
  • 六、数组


一、数据类型

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,//0b,//1c//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==Bc语言中,使用的是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++){ //二维数组对象.lengthfor(int j=0; j<二维数组名[i].length; j++){//二维数组行对象.lengthSystem.out.print(二维数组名[i][j]);}

代码举例:

一维数组

 //数组的定义//静态定义int[] arr = new int[]{1, 2, 3, 4, 5};//方法一int[] arr1;arr1 = new int[]{1, 2, 3, 4, 5};//方法二:用new创建数组实体int[] arr2 = {1, 2, 3, 4, 5};//方法三  省略new int[]  默认为intint arr3[] = {1, 2, 3, 4, 5};//方法四  类似c语言/*错误情况:(重要tips)一.int[] arr4;arr4={1, 2, 3, 4, 5};//不可以这样 注意与方法三的区别二.int[] arr5=new int[5]{1, 2, 3, 4, 5};//错误 不可以int[5] 相当于动态和静态一起使用了*///动态定义:后续可以循环给每个元素赋值int[] arr01=new int[5];//方法一int[] arr02;//方法二arr02=new int[5];System.out.println("arr02的地址:"+arr02);System.out.println("arr02的长度:"+arr02.length);System.out.print("arr02的元素为:[");for (int i = 0; i < arr02.length; i++) {if (i==0){System.out.print(i);} else {System.out.print(" ,"+i);}}System.out.print("]");System.out.println();//默认值分析****(不同点)int[] a1=new int[5];//默认0System.out.println(a1[0]);double[] a2=new double[5];//默认0.0System.out.println(a2[0]);boolean[] a3=new boolean[5];//默认falseSystem.out.println(a3[0]);char[] a4=new char[5];//默认0 不是‘0’System.out.println(a4[0]);String [] a5=new String[5];//默认nullSystem.out.println(a5[0]);// 定义数组,存储3个元素int[] arr001 = new int[3];//数组索引进行赋值arr001[0] = 5;arr001[1] = 6;arr001[2] = 7;//输出3个索引上的元素值System.out.println(arr001[0]);//5System.out.println(arr001[1]);//6System.out.println(arr001[2]);//7//定义数组变量arr2,将arr的地址赋值给arr2****(不同点)int[] arr002 = arr001;arr002[1] = 9;System.out.println(arr002[0]);//5System.out.println(arr002[1]);//9System.out.println(arr002[2]);//7

二维数组 : 最大区别是 每行长度可能不一致!

 int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9, 10}};//声明与初始化必须在一句完成System.out.println(arr[0].length);//3每列长度不一样 即列数不一致     ****(不同点)System.out.println(arr[1].length);//3System.out.println(arr[2].length);//4int[][] arr1 = new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9, 10}};int[][] arr2;arr2 = new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9, 10}};//错误示范  不可以写int[3][3]   和一维一样,只能是int[][]//arr2 = new int[3][3]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9, 10}};//错误,静态初始化右边new 数据类型[][]中不能写数字*///举例说明://1、声明一个二维数组,并且确定行数//因为每一行的列数不同,这里无法直接确定列数int[][]  arr = new int[5][];//2、确定每一行的列数for(int i=0; i<arr.length; i++){/*arr[0] 的列数是1arr[1] 的列数是2arr[2] 的列数是3arr[3] 的列数是4arr[4] 的列数是5*/arr[i] = new int[i+1];//有点类似一维数组了         *****(不同点)}//3、确定元素的值  遍历方法                             *****(重要)for(int i=0; i<arr.length; i++){for(int j=0; j<arr[i].length; j++){arr[i][j] = i+1;}}//4、遍历显示for(int i=0; i<arr.length; i++){for(int j=0; j<arr[i].length; j++){System.out.print(arr[i][j] + " ");}System.out.println();}

C语言

        数组(C)//静态初始化int arr[5]={1,2,3,4,5};//方法一:arr[5] 5写不写都得int arr1[5];//方法二int arr2[5]={1,2,3,4,5};strcpy(arr1,arr2);//不arr1={1,2,3,4,5};//动态定义数组int *p=(int *)maloc(sizeof(int)*5);//动态定义数组 p指针指向一个大小为5的地址空间//二维数组int arr[][]={{1,2},{},{3,4,5}}//此处为arr[3][3] 行列都是三int arr[2][2]={{1},{}}//此处为arr[2][2] 行列都是二

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/364.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Kubernetes部署篇:基于Kylin V10+ARM架构CPU+外部etcd使用containerd部署K8S 1.26.15容器版集群(多主多从)》

总结&#xff1a;整理不易&#xff0c;如果对你有帮助&#xff0c;可否点赞关注一下&#xff1f; 更多详细内容请参考&#xff1a;企业级K8s集群运维实战 1、在当前实验环境中安装K8S1.25.14版本&#xff0c;出现了一个问题&#xff0c;就是在pod中访问百度网站&#xff0c;大…

Mysql嵌套查询太简单了

1、子查询的分类 不相关查询&#xff1a; 子查询能独立执行 相关查询&#xff1a; 子查询不能独立运行 相关查询的执行顺序&#xff1a; 首先取外层查询中表的第一个元组,根据它与内层查询相关的属性值处理内层查询, 若WHERE子句返回值为真&#xff0c;则取此元组放入结果…

maven3.9+下载安装

maven介绍 Maven 是一个项目管理和理解工具&#xff0c;它基于项目对象模型&#xff08;POM&#xff09;概念。Maven 可以帮助开发者定义项目结构、依赖关系、构建过程以及其他任务。它主要用于 Java 项目&#xff0c;但也可以用于其他类型的项目。Maven 的主要目标是简化构建…

hacs安装midea ac lan 0.3.22无法下载

1.hacs下载midea ac lan 0.3.20安装成功 2.GitHub下载0.3.22zip包 3.上传至群晖文件夹 4.SSH连接操作先备份一下 cp -r /var/packages/HomeAssistant/home/.homeassistant/custom_components/midea_ac_lan/ /volume2/homes/ 5.删除 rm -rf /var/packages/HomeAssistant/home/.h…

Centos7 ElasticSearch集群搭建

1. 服务器环境配置 1.1 配置hosts文件 3台服务器都要执行 vim /etc/hosts; # 将以下内容写入3台服务器hosts文件 192.168.226.148 es001 192.168.226.149 es002 192.168.226.150 es003 1.2 关闭防火墙 3台服务器都要执行 systemctl stop firewalld; systemctl disable…

探究汇编中的栈帧和局部变量

本节视频学习链接&#xff1a;https://pan.quark.cn/s/2db92a03734d 汇编语言中的函数调用和局部变量的管理是通过栈帧&#xff08;Stack Frame&#xff09;来实现的。栈帧是在函数调用时创建的&#xff0c;它存储了函数的局部变量、参数以及返回地址。本文将详细讲解栈帧的概…

未来互联网

未来互联网的发展将涉及人、物、环境三个方面的系统整合&#xff0c;下面是具体的解释&#xff1a; 人&#xff1a;未来互联网将更加人性化&#xff0c;通过智能化技术实现个性化服务和定制化体验&#xff0c;从而提高用户的满意度和忠诚度。同时&#xff0c;未来互联网也将加强…

Python语言零基础入门——条件判断

目录 一、单分支选择结构&#xff1a;if语句 二、双分支选择结构&#xff1a;if-else 三、多分支选择结构 四、嵌套选择 五、match语句 match与if的对比 六、代码规范 七、练习题 1.年龄判断 2.成绩判断 3.闰年判断 一、单分支选择结构&#xff1a;if语句 if 条件&…

STM 32 GPIO 的几种工作模式怎么运行?

在嵌入式开发领域&#xff0c;STM32微控制器系列因为功能强大和灵活性而广受欢迎。 其中&#xff0c;通用输入输出&#xff08;GPIO&#xff09;是最基础的功能&#xff0c;用于与外部世界的直接电子接口。 STM32 GPIO可以配置为多种工作模式&#xff0c;以适应不同的应用场景…

OpenCV从入门到精通实战(四)——答题卡识别判卷系统

基于OpenCV的答题卡识别系统&#xff0c;其主要功能是自动读取并评分答题卡上的选择题答案。系统通过图像处理和计算机视觉技术&#xff0c;自动化地完成了从读取图像到输出成绩的整个流程。下面是该系统的主要步骤和实现细节的概述&#xff1a; 1. 导入必要的库 系统首先导入…

偏微分方程算法之一阶双曲差分法

目录 一、研究目标 二、理论推导 2.1 引言 2.2 迎风格式 2.3 完全不稳定差分格式 2.4 蛙跳格式&#xff08;Leapfrog&#xff09; 2.5 Lax-Friedrichs格式 2.6 Lax-Wendroff格式 2.7 Beam-Warming格式 2.8 隐格式 2.9 Courant-Friedrichs-Lewy条件&#xff08;CFL条…

(51单片机)第十一章-串行口应用提高

11.1 方式0应用 在第6章中&#xff0c;已经对51单片机的串行口结构做过详细介绍&#xff0c;并且通过实例讲解了串行口的4种工作方式中方式1的具体用法&#xff0c;本节详细讲述串行口方式0的用法。 串行口方式0被称为同步移位寄存器的输入/输出方式&#xff0c;主要用于扩展并…

【结构型模式】外观模式

​一、外观模式概述 外观模式定义与意图&#xff1a;外观类为复杂的子系统提供了一个统一的入口。外观模式定义了一个高层接口&#xff0c;这个接口使得这一子系统更加容易使用。&#xff08;对象结构型模式&#xff09; 外观模式的特点&#xff1a; 1.又叫做门面模式&#xf…

试驾小米SU7后,我准备退了我的订单

文 | AUTO芯球 作者 | 雷歌 我真想退了我之前大定的小米SU7Pro版&#xff01; 前两天我不是和朋友三人一起开着问界M9去试驾SU7了嘛&#xff0c; 说实话&#xff0c;这一圈下来&#xff0c;有欣喜有失望。 SU7的优点特别明显&#xff0c;也很突出&#xff0c; 就是它的底…

了解MySQL InnoDB多版本

了解MySQL InnoDB多版本 在数据库管理系统中&#xff0c;多版本并发控制&#xff08;MVCC&#xff09;是一种用于实现高并发和事务隔离的技术。MySQL的InnoDB存储引擎支持MVCC&#xff0c;这使得它可以在提供高事务性能的同时&#xff0c;也保证了数据的一致性和隔离性 MVCC简…

MySQL中的死锁预防和解决

MySQL中的死锁预防和解决 死锁是数据库管理系统中常见的问题&#xff0c;特别是在高并发的应用场景下。MySQL数据库中的死锁会导致事务处理速度减慢&#xff0c;甚至完全停止&#xff0c;因此理解并预防死锁至关重要。本文将详细介绍如何预防MySQL中的死锁&#xff0c;包括常用…

IBM SPSS Statistics for Mac:数据分析的卓越工具

IBM SPSS Statistics for Mac是一款功能强大的数据分析软件&#xff0c;专为Mac用户设计&#xff0c;提供了一系列专业的统计分析和数据管理功能。无论是科研人员、数据分析师还是学生&#xff0c;都能从中获得高效、准确的数据分析支持。 IBM SPSS Statistics for Mac v27.0.1…

C# 语言类型(一)—预定义类型值之数值类型

总目录 C# 语法总目录 参考链接&#xff1a; C#语法系列:C# 语言类型(一)—预定义类型值之数值类型 C#语法系列:C# 语言类型(二)—预定义类型之字符串及字符类型简述 C#语法系列:C# 语言类型(三)—数组/枚举类型/结构体 C#语法系列:C# 语言类型(四)—传递参数及其修饰符 C#语法…

Ubuntu 安装 wine

本文所使用的 Ubuntu 系统版本是 Ubuntu 22.04 ! 如果你使用 Ubuntu 系统&#xff0c;而有些软件只在 Windows 上运行&#xff0c;例如&#xff1a;PotPlayer&#xff0c;那么该如何在 Ubuntu 系统中使用到这些 Windows 的软件呢&#xff1f;答案是安装 wine。 简单的安装步骤如…

IDEA使用SCALA

一、在IDEA中下载插件 在设置->插件中找到scala&#xff0c;并下载。 下载完成后重启idea 二、在idea中创建spark的RDD操作项目 新建项目选中Scala。 创建完成后为项目添加java包&#xff0c;这个添加的是spark安装包中jars目录下的所有jar包 然后编写RDD操作 import or…