22/2/18学习笔记(Part 3)
初步常见关键字
-
auto -自动- 每个局部变量都由auto修饰(基本上都已省略,在新语法中有其他用法。)
-
break
-
case
-
char
-
const
-
continue
-
default -默认-
-
do
-
double
-
else
-
enum -枚举-
-
extern -声明外部符号-
-
float
-
for
-
goto
-
if
-
int
-
long
-
register -寄存器关键字-建议存入寄存器(大量频繁使用的数据,但当今编译器会自动识别)
-
return
-
short
-
signed -有符号的,例正负-
-
sizeof
-
static -静态的-
1、static 修饰局部变量(改变了局部变量的生命周期,本质上改变了变量的存储类型。)
2、static 修饰全局变量(全局变量整个工程都可以用,因为全局变量具有外部链接属性。)
static 修饰全局变量后,使得整个全局变量只能在自己所在的源文件(.c)内部可以使用,其他源文件不能使用!因为static 修饰后,全局变量就变成了内部链接属性,其他源文件无法链接此静态全局变量。
3、static 修饰函数(类似于static 修饰全局变量。)
static 修饰函数后,使得函数只能在自己所在的源文件内部使用,本质上,static 改变了链接属性。 -
struct
-
switch
-
typedef -类型同定义-
typedef unsigned int u_int;//别名
int main()
{
unsigned int num = 100;
u_int num2 = 100;//此时两条代码定义相同
return 0;
}
- union -联合体-
- unsigned
- void -无、空-
- volatile
- while
define 定义常量和宏
define 是个预处理指令。
- define 定义宏:
#define ADD(X,Y) X+Y
int main()
{
printf("%d\n",ADD(2, 3));//此时结果是5
return 0;
}
#define ADD(X,Y) X+Y
int main()
{
printf("%d\n", 4*ADD(2, 3));//此时结果是11,4*2+3 = 8+3 =11
return 0;
}
#define ADD(X,Y) ((X)+(Y))//定义成宏,而非简单的某数值
int main()
{
printf("%d\n",4*ADD(2, 3));//此时结果是20
return 0;
}
指针
-
内存
内存是电脑上特别重要的存储器,计算机中所有的程序的运行都是在内存中运行的。
内存分为一个个小的内存单元,每个内存单元的大小是1个字节。
为有效访问到内存的每个单元,内存单元具有编号,这些编号被称为该内存单元的地址。 -
内存是如何编号的?
32位—32根地址线—物理线—通电—1/0 2^32根地址线 (个内存单元)
64位—64根地址线—物理线—通电—1/0 2^64根地址线 (个内存单元) -
一个内存单元多大?
一个内存单元一个字节8个bit。 -
查询地址代码:
-
指针大小
结构体
- 结构体可以让C语言创建新的类型出来。
- 结构体变量.成员变量
little tips
- 关于存储类型
- "%p\n" 专门用来打印地址。
- pa 是用来存放地址的,在c语言中叫指针变量。