1、C语言和的对比学习 前言 这里说写的都是我的学习笔记,然后这里的是很简单的对比学习,全部都是自己所理解的东西,而且都是很基础的,很简明的辅助自己理解学习而已。C语言不会涉及到指针以及比指针更难更深层次的内容;也不会涉及到面向对象以及比面向对象更深层次更难的内容。 2015年12月20日 运行机制 C语言: 源代码>编译>汇编>机器码>可运行程序 源代码(*)>编译>字节码(*)>解释>程序运行 相当于:把”鱼(源代码)”买回来>用”刀(编译器)”宰鱼>处理好的”鱼(字节码)”>用锅(,解释/运行环境虚
2、拟机)把鱼煮熟>可以吃的鱼(可运行程序) 程序分为两种类型,一种是程序,也就是一般的桌面程序.还有一种就是程序,主要是应用(嵌入)到网页编程上的. 源文件 可运行文件 运行环境 C语言 ( ) 虚拟机 开发环境搭建(简单入门) C语言 6.0(直接安装直接用) 1. 下载安装( 开发工具包 = ) 2. 下载(, J2 = 2 标准版2企业版,下载是下载版本的版本可以做网页程序) 3. 配置环境变量 : C:\ \\1.8.0_45 : \\\ 或者: \\;.; : \ 第一
3、个程序 C语言 1.新建一个项目 2.新建一个类 3.运行 程序(程序主体) C语言 <> 头文件 () 定义主函数(程序的入口) { 1; 定义一个值为1的整型变量 (“”); 输出语句 (“”); 0;
4、 函数返回值 } 语言 { 定义类 ([] ) { 主方法定义在类 1; 定义一个值为1的整型变量 (“”); 输出语句 (a); } } 数据类型 C语言 数据类型 关键字 字节 示例 范围 基本整型 4(32位)() a; 1; ; -2^31~(2^31-1) 短整型 2 a; -
5、2^15~(2^15-1) 长整型 4 a; -2^31~(2^31-1) 双长整型 8 a; -2^63~(2^63-1) 无符号基本整型 4 a; 0~(2^32-1) 单精度浮点型 4 1.234f; 六位小数(6位有效数字) 双精度浮点型 8 1.234; 15位小数 长双精度浮点型 16 1.234; 19位小数 字符型 1 ’m’; *布尔型(判断用的) ; 只有和 字符串(字符数组
6、/函数) 或 ()或 []={“”} 数据类型 关键字 字节 示例 范围 基本整型 4(32位)() a; 1; ; -2^31~(2^31-1) 短整型 2 a; -2^15~(2^15-1) 长整型 4 a; -2^31~(2^31-1) 双长整型 8 a; -2^63~(2^63-1) 无符号基本整型 4 a; 0~(2^32-1)
7、 单精度浮点型 4 1.234f; 六位小数(6位有效数字) 双精度浮点型 8 1.234; 15位小数 长双精度浮点型 16 1.234; 19位小数 字符型 2 ’男’; *布尔型(判断用的) 2 ; 只有和 字符串(引用数据类型) ””; 输出语句 C语言 (“要输出的内容 \转义字符格式声明百分号+格式字
8、符 这里字符的都只是例子 双引号是格式控制 ,后面的a是输出表列 说明那个就是a的值”); 为了避免出错那个格式声明读的时候还是读百分号d这样好一点 例如: 1; (“a的值是”); 那么输出的就是 a的值是1 (“这里是字符串,外面是用符号链接的数据(变量)名””这里可以连接多个字符串,在外面还可以输入表达式,不一定是变量名称”+(()10/3)); ("a[""] = "+()); 在这句话里加号用于拼接字符串以及求和之用。 ("a[" 这是一个字符串 用加号拼接上 i 然后再拼接上 "] = " 括号里面的 这里的加号表示求和 因为类型的变
9、量加上其他任何基本类型的变量都将被当作字符串处理。 这里 如果不用括号括起来 就成了字符串,比如1+1 就成了11而不是2 第一个加号:拼接字符串 第二个加号:拼接字符串 第三个加号:拼接字符串 第四个加号:求和 也就是说+在输出语句中,如果是表达求和的话要加上括号: 例如 12; 在输出语句里 ()就是3 而就是12数据类型转换 C语言 例如想把 3.2;改成 只要直接用的时候()a这样就可以了 转换语法:(要转换的类型)变量名称; 例如: () { 5.75; ("\n",()); } 55.750000 自动类型转换
10、 a1=12; a21; 这样子a2就是12.0了 强制类型转换 a1=12.8; a2=()a1; 这样子a2就是12了,强制转换会导致数据 常量定义 C语言 # 常量名 值 # 50 类型 常量名 = 值; 的意思是不可更改的 例如 3.14; 注意的是常量名一般是大写字符,类型不能省 运算符号 C语言 和的运算符号都是一样的,只是输出语句的表达方式不一样. 还有就是使用布尔值(或)来表达对错,而C语言却是用0和非0(多数是1)来表达对错.(这里补充一个中的^b是异或,也就是有且只有一个是就是)
11、符号优先级也是一样的. 赋值符号也是一样的 三元运算符(?:)也是一样的,用法 (布尔表达式)?表达式1:表达式2 流程控制语句 C和的条件语句,选择语句,循环语句都是一样的: 条件语句: (布尔表达式){ 执行代码块1; } { 执行代码块2; }{ 执行代码块3; } 选择语句: (表达式){你 这里的表达式多数是变量名,例如 3(a){ 值1: 执行代码块1; ; 值2: 执行代码块2; ; ; } 1、 后面小括号中表达式的值必须是整型或字符型 2、 后面的值可以是常量数值,如 1、2;也可以是一个常量表达
12、式,如 2+2 ;但不能是变量或带有变量的表达式,如 a * 2 3、 匹配后,执行匹配块里的程序代码,如果没有遇见 会继续执行下一个的 块的内容,直到遇到 语句或者 语句块结束 循环语句: 常用的 3 种循环: 、 (但条件满足时,执行循环操作) (判断条件){ 循环操作 } 、(先进行一次循环操作,再判断条件是否满足,满足则执行) { 循环操作 }(判断条件) 、(先将循环变量初始化,然后当判断循环变量条件成立时执行循环操作(体),然后让循环变量变化,再判断…) (循环变量初始化;循环条件;循环变量变化){ 循环操作
13、 } 这里的循环变量初始化是:变量类型 变量名=值; 例如 0; 和 例如(1<10){ (i<5) {; 第一次是结束1的循环,直接进入2的循环,,不会执行后面的语句,如此类推 3; } ; 直接结束,跳出整个循环 } (“结束了”); 数组 C语言 数据类型(符) 数组名[元素个数n(常量表达式)]; 例子 a[10]这个是以为数组的定义 b[]={1,2,4}这个是以为数组的初始化,这里如果后面填了多少个数目,[]里面的书就是多少.如果是 b[4]={1,,3,}的话,里面没有的数就会默认为0; (0<=
14、9) { (“”[i]); 赋值语句也是有双引号””的,而且也要注意是有取地址符号&的. } 这个是以为数组的赋值 这样就定义了一个有10个元素的一维数组a了,其中第一个元素是a[0],第九个元素是a[9],至于为什么a[0]是第一个元素,原因是这里的a[10]是表示整一个数组,而且a[10]是一个伪代码,真正用到的其实是a[0][9],这里里面的0~9其实是表示及第一个元素的偏移量(也叫索引值).例如第二个元素和第一个元素的偏移量是2-1=1所以第二个元素就是a[1]了. 1、 声明数组 语法: 数据类型[ ] 数组名; 或者数据类型 数组名[];
15、2、 分配空间 简单地说,就是指定数组中最多可存储多少个元素 语法: 数组名 = 数据类型 [ 数组长度 ]; 其中,数组长度就是数组中能存放元素的个数 例子:{ a[]; [5]; } 或者[] [5]; 或者[] []{1,2,3,5}在声明数组的同时赋值不能指定长度. 或者[] {1,5,6,8}; 或者 a[]={5,5,7,6}; 使用 类操作 中的数组 1排序 语法: (数组名); 2、 将数组转换为字符串 语法:(数组名); 类的使用 中的包>类>方法(函数).<> 包里面有很多类,类里面有很多方法.<> 使用的时
16、候先导入( 包.类;)类,然后声明方法,然后使用方法 例如: 在前面的地方 ; 然后就可以用中的方法了,例如(数组名) 当然,如果不导入的话,也可以直接使用 例如(数组名); 使用 操作数组 并不是 中的关键字,是 语句的特殊简化版本,在遍历数组、集合时, 更简单便捷。从英文字面意思理解 也就是“ 每一个”的意思 语法: (元素类型 元素变量(名):遍历对象){ 执行的代码 } 综合示例: ; 导入类 { ([] ) { 定义一个整型数组,保存成绩信息 [] = { 89, 72,
17、 64, 58, 93 }; 对类对数组进行排序 (); 使用遍历输出数组中的元素 ( ) { (); } } } 二维数组 C语言 数据类型 数组名[行数][列数]; 例子: 1. a[3][3]={1,4,7,5,6,9,7,2,5}这里可以缺省成[][3],但是不可以a[3][]. 2. a[3][3]={{1,2,5},{5,6,7},{5,4,6}}; 3. a[3][3]={{1},{},{5}}里面缺省的值都是默认值0. 1. 声明数组并分配空间 数据类型[][] 数组名 数据类型[行数]
18、[列数]; 例如[][] [3][3]; 2. 赋值 数组名[行的索引][列的索引]=值; 例如[0][0]=1; 二维数组静态初始格式 数据类型 数组名[][] ={ {第0行初值}, {第1行初值}, {第2行初值} …., {第n行初值} ;} 函数(C语言)/方法() C语言有多个头文件,是库函数,也就是*,里面包含了函数声明,宏定义,函数原型.比如<> 标准输入输出头文件. 头文件里面包含有多个函数,要使用这些函数必须先声明头文件. 也有类库,里面有多个包,包里面有多个方法.原理也是差不多的. 实质上两者没有本质上的区别,其实方法就是成员函数.
19、中,在类中创建对象,然后对象.方法();这样用,也就是说,方法是同一个,但是对象不同,…... 类具有相同或者相似特征的一类事物的统称。 对象类的某一个特例,叫做对象。 类是一个抽象的概念,对象是一个具体的个体。 一切事物都是对象。 比如说:人,是类,一个抽象的概念.小红,就是对象,怎具体的指出哪一个. 函数()(C语言) 基础c语言程序包括:头文件(公有知识)/主函数(程序入口)/其他函数(自定义函数) 函数就是功能,每一个函数用来实现一个特定的功能,函数名字反映其代表的功能 调用函数的步骤: 定义->声明->调用 ( b) -> (); 声明
20、的时候里面有没有 b都可以,但是一定要有分号-> ();如果函数是定义主函数前面的话可以不用声明.调用函数之前必须要声明或者定义函数,当然定义函数可以写在主函数后面,但是必须在调用函数之前声明该函数. 1. 定义函数 a. 定义无参函数 类型名 函数名() { 函数体 } 或 类型名 函数名() 是空的意思,表示函数没有参数 { 函数体 } 例如: () { (“”); } b. 定义有参函数 类型名 函数名(形式参数表列) 形式参数也叫做虚拟函数,简称形参,调用的时候函数名后面的参
21、数就是实际参数,简称实参.可以是常量,变量或表达式. { 函数体 } 例如 ( ) { z; >; z; 这里也可以写成(z);,表示调用的时候对应返回的值什么那个.例如(5,7),那么这时候7,也就是说(5,7)的值就是7.(这里的7由函数里面运行完的时候z的值返回所得) } c. 空函数 类型名 函数名() {} 无实际作用,只是用于编写程序开始阶段可以在将来准备扩充功能的地方 写上一个空函数,命名取将来去用的实际函数名.(其实也就是想到这个功能,但是又想不出来,或者暂时没有必要去写而已) 举个例子: <> ()
22、 { ( b); 声明函数 ② 35; (“”()); 调用函数 ③ 0; } ( b) 定义函数 ① { z; > z; } 方法()() 中用来解决一类问题的代码的有序组合,是一个功能模块. 语法: 访问修饰符 返回值类型 方法名(参数列表){ 方法体; } 其中: 1、 访问修饰符:方法允许被访问的权限范围, 可以是 、、 甚至可以省略 ,其中 (公共的) 表示该方法可以被其他任何代码调用,其他几种修饰符的使用在后面章节中会详细讲解滴 2、 返回值类型:方法返回值的类型,
23、如果方法不返回任何值,则返回值类型指定为 ;如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 语句返回值 3、 方法名:定义的方法的名字,必须使用合法的标识符(通常首字母是小写字母,然后后面的单词首字母都是大写字母,这样应该是为了看起来更清晰吧) 4、 参数列表:传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开 根据方法是否带参、是否带返回值,可将方法分为四类: Ø 无参无返回值方法 Ø 无参带返回值方法 Ø 带参无返回值方法 Ø 带参带返回值方法 方法的使用: 定义方法>创建对
24、象(创建类的对象)>调试方法 1. 定义方法:在上一页↑ 2. 创建对象(类似于函数声明): 类()名 对象名 = 类名(); 3. 调试方法(调用对象): 对象名.方法名(); 方法重载就是多个同名,但是参数(类型/有无/顺序)不同的函数. 调用的时候,它们会根据参数的不同而用不同的函数. 的记事本编程 (安装好然后配置好环境变量后) 直接用记事本编程,以*格式保存(注意文件名要及类名一致)>进入系统操作>如果不是在C:的话就先输入盘符(例如D:),然后输入*文件所在盘符>输入 文件所在目录> * 运行编译出字节码文件*> *(*为文件名,不带后缀)>得到运行结果. 28 / 28






