(作为初学者,写博客,便当作学习记录了,写的不妥之处,望见谅)
目录
一: 初识c语言
1.1 c语言发展
机器语言>汇编语言>高级语言(或 非结构化语言>结构化语言>面向对象语言)
1.2 程序功能
1.数据表达
2.流程控制
- (1)顺序控制结构(2)分支控制结构(3)循环控制结构
1.3 算法表示
1.3.1 算法特点
(1)确实性:指令确定(2)有穷性:步骤有穷(3)可行性:能够执行(4)有零个或多个输入 (5)有一个或多个输出
1.3.2 描述算法
(1)文字(2)流程图(3)伪代码(4)程序设计
1.4 c语言特点
(1) 简短紧凑、使用方便(2)运算符丰富(3)可移植性好(4)代码质量高(5)结构化语言
1.5 c语言约束
(1)标识符(2)关键字(3)用户自定义标识符(4)预定义标识符(5)分隔符
1.6 c语言语法成分
(1)常量(2)变量(3)运算符(4)表达式(5)语句(6)函数的定义与调用(7)输入与输出
1.7 其他
- 1.关于在电脑上编写代码,是在下载在电脑上的软件编写具有一定功能的代码(仿佛没说),而软件是开发环境,如Visual C++ 2010、Visual studio 2019等,具体下载浏览器搜索有较好的过程
- 2.代码的敲打,按老师、学长的说法,只有经常练习,同时开始阶段不能看一句敲一句,加油。
- 3.其他的慢慢积累了。
二: 数据类型、运算符和表达式
2.1 数据类型
大概就是:
2.2 c语言中 常量
2.2.1直接常量
①整形常量
(正整数,负整数,零)(可十进制,八进制,十六进制表示)
(1)十进制:0~9 和 + - 组成。
(2)八进制:0(数字)为前缀,0~7 组成,无符号。
(3)十六进制:以0X或0x为前缀,0~9和A~F(表10~15)组成,无符号
(另)整形常量后加个u或者U,为unsigned int型、加个l或者L,为long int型
②实型常量(又称浮点数)(只能十进制,有小数,指数两种表现形式)
(1)小数形式:如1. 、 1.0 、 .1 小数点不能省
(2)指数形式:1.23E-2 (为1.23*10^-2)
- (2.1)E后面必须要有数字,正负号放在E后面
- (2.2)c语言中,浮点数是double型,若数字后面有f,则为float型
③字符型常量('a' 、'B'、 '='、'?'...)
- (1)单引号
- (2)单个符号不是字符串
- (3)一个字符一个字节
- (4)字符对应ASCII
- (5)转义字符是用 '\' 开头后加一个字符或八进制、十六进制表示
④字符串常量
- (1)双引号
- (2)n个字符组成的字符串,占内存加一(内隐藏一个 '\0' , 其不记录长度)
- (3)字符串如遇到 '\0' 表示结束 "HelloWorld"长度为10、"Hello\0World"长度为5
- (4)可以把一个字符常量赋予一个字符变量,但是不能把一个字符串常量赋予一个字符变量
2.2.2符号常量
如:#define 标识符 常量值
- (1)为预处理命令,不加“;”
- (2)目的:①增加程序可读性②提高程序可维护性、容易修改③简化程序代码④方便数组定义
- (3) 一个“define”一个标识符(符号常量)
2.3 c语言中变量
2.3.1变量的定义与使用
(1)格式: 类型说明符 变量名表;
(2)定义类型
- int 整形
- float 单精度浮点型
- double 双精度浮点型
- char 字符型
tip:定义时可以同时赋值(即初始化)
2.3.2 整形变量
- (1)取值范围
- (2)无符号整数所占的字节数与相应有符号整数相同,但是由于省去了符号位,故不能表负数。
- (3)有符号整数以二进制补码形式存储。最左边第一位表示符号,0表示正数,1表示负数。
- (4)无符号整数以二进制原码形式存储。
2.3.3 浮点数变量
- (1)取值范围
- (2)单精度数据保留7位有效数字,双精度保留16位有效数字(超出可能是无效数字)
2.3.4 字符型变量
- (1)字符型变量的值是字符常量,类型说明为 char
2.4 运算符和表达式
2.4.1 赋值运算符和赋值表达式
(1)运算符
- '='、'+='、'-='、'*='、'/=' 和 '%='
(2)赋值表达式
- 一般形式:变量 = 表达式
- 注意:①赋值运算符左侧必须是一个变量
- ②赋值语句末尾必须要有分号
- ③'=' 两边的类型不一样时,会右侧强行转换成左侧(这是的得到的值,但是运行一般为int或相对更大取值范围那个)
- ④赋值运算符具有右结合性
2.4.2 算术运算符和算术表达式
- (1)
p:求余要求参与运算的两个运算对象必须都是整型,其结果也是整型
- (2)特殊运算符
- '++'和'--':对使用的值进行加一或者减一
- 在变量前:先计算(++),后使用(变量)、
- 在变量后:先使用(变量),后计算(++)
- (3)算术表达式
- (应该和数学差不多吧)
2.4.3 逗号运算符和逗号表达式
- (1)一般形式: 表达式1,表达式2,...表达式n
- (2)左往右依次计算,最后一个表达式的值作为整个表达式的值
2.4.4 求字节数运算符
- (1)sizeof(表达式)或sizeof 表达式
- (2) sizeof(数据类型名)
p:指针类的都是4(x32)或者8(x64)、大小为字节。
2.4.5 数据类型转换
- (1)自动类型转换
p:①横向是必定的转换,纵向是横向之后仍然不同的转换(自己不是特别懂)
②类型转换不改变原变量
- (2)强制类型转换
一般形式:(类型说明符)(表达式)
p: 高到低的转换会缺失精度
三 顺序结构
3.1 c语言的语句
(1)说明语句
- 用于定义程序所使用的变量和类型
- 如:int a,b; /*定义两个整型变量*/
- char ch; /*定义一个字符型变量*/
(2)表达式语句
- 一般形式: 表达式;
- p:未加上 ‘ ; ’ 则为表达式(仿佛没讲)
(3)分支语句
- 分支语句实现分支控制过程,根据条件成立与否执行不同的语句。有两种分支结构:if-else和switch
(4) 循环语句
- 3种结构:for 和while 和do-while
(5)转向语句
- 有:break;goto;continue;return;
(6)复合语句
- 用一对大括号{}将若干语句顺序组合在一起所组成的语句称为复合语句
(7)空语句
- 一个分号组成
(8)函数的定义与调用
(9)输入与输出
- (scanf()和printf())
3.2 数据的输入输出
(较复杂的细节在平常见到的代码中能够很好的了解到,开始不用了解太多)
(1)printf()函数
printf("格式控制字符串",输出项表列)
(2)scanf()函数
scanf("格式控制字符串",输入项列表)
(3)整型数据的输入和输出
(4)浮点型数据的输入和输出 ![](https://i-blog.csdnimg.cn/blog_migrate/9ca329352cd18693632551de041661dd.png)
(5)字符型数据的输入和输出
(1)scanf()和printf()
- p:printf("%c%c\n",a,b)可在%与c之间加修饰符,同表3.2.2和表3.2.3
(2)getchar()和putchar()
- ① ch = getchar() 运行时从键盘缓冲区读取一个字符赋值给ch。
- ② putchar(输出参数) 输出一个字符 (字符型变量或字符型常量)
四 分支结构
4.1 关系/逻辑/条件运算符
①关系运算符:> ; >= ; < ; <= ; == ; != ;
- 关系表达式: 表达式1 关系运算符 表达式2
②逻辑运算符:
- && 逻辑与 (两边都为真时得真)
- || 逻辑或 (两边都为假时得假)
- ! 逻辑非 (真得假,假得真)
- 逻辑表达式:表达式1 逻辑运算符 表达式2 或者 逻辑运算符 表达式1
- p:一般&&左边为假,那右边便不考虑了,||左边为真,右边也不考虑了
③条件运算符:? ;
- 条件表达式: 表达式1?表达式2;表达式3
4.2 if-else实现分支
(1)双分支if语句
- 一般形式:if(表达式)
- 语句1;
- else
- 语句2;
(2)单分支if语句
- 一般形式: if(表达式)
- 语句;
(3)嵌套:
- 复合一下就好了
- p:else只是寻找其上最近得未与else配对的if进行配对,合适的缩进,或者{}可减少争议
(4) 多分支if语句:
- if(表达式1)
- 语句1;
- else if(表达式2)