重点标记 : ******
C语言变量:
1.程序 = 数据结构 + 算法
数据:
分类:根据是否可以改变分为:常量与变量
C语言的三大基本类型
1.整型
2.字符型
3.浮点型
查看类型的空间大小:
sizeof(常量/变量/类型);
·
整型:短整型short 基本整型int 长整型long
2byte 4byte 4byte
整型分为:整型常量和整型变量
整型常量:十进制,八进制(0开头),十六进制(0x开头)
%d %o %x
整型变量:
1,定义变量:分配空间
类型 变量名;
PS:不能再同一函数中,重名定义变量;
short a ; ------>给A分配2byte直接的空间 就是16个bit
unsigned : 无符号 signed 有符号 默认(signed)
unsigned short a ;
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
最小值:0000 0000 0000 0000
最大值;1111 1111 1111 1111
以上只是正数范围:
如果值为负数是: ******
【】[ ][ ][ ][ ][ ][ ][ ] [ ][ ][ ][ ][ ][ ][ ] [ ]
最高位位符号位:0 + 1 :-
1 111 1111 1111 1111 -32768 (-0 就等于 32768) ******
0 111 1111 1111 1111 32767
PS: 正数以原码存储 ,取出正数是 , 以原码取出
负数以补码存储 ,取出负数是, 将补码转换成原码取出
取出时,计算机是以0 和 1 判定是正是负 (理解)
如图示:
2.1.类型 变量名 = 值 ;
2.2 类型 变量名 ;
变量名 = 值 ;
2.1叫初始化,2.2并不是初始化,是赋值(这点切记)
3.引用变量:通过变量名 , 来引用变量空间的内容
PS:这三点贯穿整个c语言,一定切记
字符型:字符常量和变量
字符常量 : 数字字符('0'),字符(‘a-z’)
计算机只能识别二进制 , 所以有特定的二进制序列来代表字符 ----》称为ascii表
ASCII表: a --- 97 A ---65 ‘0’-----》48
计算机中还有一些特殊的字符:
转移字符 :“\n”:换行符 “\t”:tab键 ‘\0’:空字符
字符变量:
1、定义变量:
类型(char) 变量名 ;
2、初始化变量:
3、引用变量:
浮点型:浮点常量和浮点变量
浮点型常量:十进制 3.14 科学计数法(也叫指数(e为10)表示法 ): 3e1
浮点型变量 :
float (单精度) :4byte
double(双精度):8byte
程序 = 算法+数据
算法基础:就是运算符 和流程控制
运算符:(*****)
弄懂:
结合性
优先级
溢出 : 等位赋值
运算符表达式: 有运算的结果
空间大小运算符:
sizeof();
运算符和函数的区别:
运算符 没有()
函数 有()
int a;
Ps:sizeof a 可以没有括号
在不同的编译器中可能会有不同,我用的是GCC
1.算数运算符:+ , - , * ,/ , %
Ps: 1、同类型运算时,得同类型结果
2、不同类型运算时,发生隐式转换
整型%整型 = 余
2.赋值运算符:= , += , -= (从右向左)
PS:
2.1、100=a; //err:左侧必须是左值(变量):
2.2、溢出:(等位赋值)
//凡是空间,都必须考虑满的情况
2.3、不同类型之间赋值:
PS: 整型变量:只能存放整型的值
浮点型变量: 只能存放小数的值
3、隐式类型转换:
1.大小不一时:(C语言是强类型语言,在运算过程中,必须转换成相同的类型进行转换):小位转高位
short ---》 int
int -----》long
float ---> double
2.不同类型
int ---》double
char ----》int
强制类型转换:
(类型)变量;
例如:
float a = 3.14;
(int)a ----->3
4、判断运算符:> < >= <= != ==
结果 :真1 假0
5、逻辑运算符:&& , || , ! (从左往右结合)
表达式1 || 表达式2 一真则真,(只要表达式1的值为真就不用看表达式2的值-----》提高效率)
表达式1&&表达式2 一假则假
!表达式
Ps:表达式结果非0即为真,0为假
6、三目运算符 (?:)
结果= 表达式1?表达式2:表达式3
如果表达式1为真,结果等于表达式2的值,反之,结果等于表达式3的值
7、自增自减
前自加:++i; 总结:(i)先自加,(结果)后取值
后自加:i++; 总结:(结果)先取值,(i)后自加
8.括号运算符(优先级运算符) , (优先级最高,先内在外)
(表达式)
流程控制:
1.代码指令的执行流程
首先了解:空语句 :指令为空
;
2.语句块
{
语句1,
语句2,
。。。。
}
2.流程分类:
顺序流程:从上往下逐条执行
选择控制:指令带有条件,当条件为真时才执行
2.1单分支if:
if(表达式)
语句;//if后面只有一条语句,可以不用花括号
2.2 双分支 if:
if(表达式){
语句块1;
}else{
语句块2;
}
2.3 多分支if
if(表达式){
语句块1;
}else if(表达式1){
语句块2;
}else if(表达式2){
语句块3;
}
。。。。
else if(表达式n){
语句块n;
}else{
语句块;
}
2.4.if嵌套
if(表达式1){
if(表达式2){
.......
}else{
.....
}
}else{
if(表达式){
.......
}else{
......
}
}
多分支:switch
拓展:
a = 1234 ;
第一位:a/1000;
第二位:a/100%10;