目录
1.操作符
1.数据在内存中存储的是补码。但打印显示的是原码。
整数的二进制表示有3种,原码、反码、补码。
正整数:原码、反码、补码相同
符号位不变,其他位按位取反。
2.或、与
3.条件操作符
exp1 ?exp2 :exp3
exp1 成立,exp2计算,整个表达式的结构是exp2的结果;
exp1 不成立,exp3计算,整个表达式的结构是exp3的结果。
4.逗号表达式
定义:使用逗号隔开的一串表达式
逗号表达式,从左向右依次计算的
整个表达式的结果是最后一个表达式的结果
5.函数调用操作符
调用函数的时候,函数名后边的()就是函数调用操作符。
2.常见关键字
特点:1.C语言提供,不能自己创建关键字
2.关键字不能做变量名
auto:每个局部变量,都是其修饰的
但是,基本都省略掉
extern:用来声明外部符号
register:寄存器关键字
计算机中,数据可以存储在寄存器中、高速缓存中、内存中、硬盘上等。
大量频繁被使用的数据,放入寄存器中,提升效率
signed:有符号的
unsigned:无符号的
static:静态的
union:联合体
void:无
PS:define、include不是关键字,是预处理指令
2.1 typedef 类型重定义
2.2 关键字static
静态的
1.修饰局部变量,改变了局部变量的生命周期,本质上是改变了变量的存储类型
2.修饰全局变量,使得全局变量只能在自己所在的源文件(.c)内部可以使用,其他源文件不能使用。
全局变量在整个工程中,都可以使用。因为,他具有外部链接属性。但如果被static修饰后,就变成内部连接属性。其他源文件就不能链接到这个静态的全局变量。
3.修饰函数,使得函数只能在自己所在的源文件内部使用,不能在其他源文件内部使用。
本质上:是将函数的外部连接属性变成了内部连接属性!和其修饰全局变量一样!
3.#define定义常量和宏
define是一个预处理指令
1.定义符号
2.定义宏
4.指针
内存:32位-32根地址线-物理线-通电-正电1/负电0
电信号转换成数字信号:1和0组成的二进制序列
00000000000000000000000000000000
00000000000000000000000000000001
.......................
01111111111111111111111111111111
11111111111111111111111111111111
产生2的32次方个编号,这个编号即为内存单元对应的地址。
一个内存单元是一个字节
指针就是地址,使用指针时,本质就是使用地址。
指针大小是相同的,指针需要多大的空间,取决于地址存储需要多大空间。
在32位平台是4个字节,在64位平台是8个字节。
5.结构体
结构体可以让C语言创建新的类型出来。
其中,结构体指针,使用时为 ->成员名
6.分支语句
C语言中,由“;”隔开的,即为一条语句。
在C语言中,非0即为真,0为假。
6.1 if语句
语法结构:
if(表达式)
语句;
语法结构:
if(表达式)
语句1;
else
语句2;
语法结构:
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
PS:在没有花括号的情况下,else与空格无关,和其离得最近的if匹配。并非和谁对齐就和谁匹配。
6.2 switch语句
switch(整形表达式)
{
语句项;
}
case 整型常量表达式;
语句;
case后的数值,代表入口。但是,如果不加停止,就会一直运行。因此,做如下修改。
switch语句中,放default子句、break,养成好习惯。
和大家分享学习笔记,欢迎批评指正!
(侵权即删!!!)