类型
整型常量: 0xffff
整型变量: int a;
字符常量: ‘A’ ‘b’
字符变量: char ch; // char类型属于整型家族,最短占1个字节
宽字符常量: L“X”
字符串常量: “string”,
以NUL终止符结束,
可以是空的字符串常量,
如果要修改字符串常量请将他放在数组当中
“string"在诞生的这一刻起便自动产生了一个指向该字符串的字符型指针,这个指针就是那就是“string”,为了便于对字符串更好的操作,可以声明一个字符型指针来保存该字符串指针的值,例如:
char * pstr;
pstr = “string”;
不能将字符串常量赋值给数组,因为字符串常量本身是指针
尽量不要自己去修改字符串常量,因为C函数库包含可一组函数专门用来处理字符串
指针变量: int *ptr(这里声明了一个指针变量)
指针常量:
例如当程序运行时。ptr 在内存中的地址是0xff2044ec,0xff2044ec就是指针常量,但是这个地址这在写代码的时候是未知的,因此指针常量不经常被使用
声明
声明整型变量: int a;
声明并初始化整型变量: int a = 10;
声明数组: int value[20];
声明指针:int *ptr; 间接访问操作符只对指针变量合法,对指针常量非法
常量
const关键字
被const 关键字修饰的称为常量。其值不能被修改。因此有两种方法给常量复制
方法1: 在初始化的时候赋值 int const a = 10;
方法2:作为函数的形参
作用域
文件作用域: 从声明的位置开始到文件结束
代码块作用域: { }之间
原型作用域: 函数声明中的表示符不与任何标识符起冲突
函数作用域
链接属性(针对编译出错)
关键字 extern: 允许引用外部文件的标识符
关键字 static : 禁止内部文件的标识符
存储类型
普通内存:静态变量,全局变量,初始化的值是0,知道程序结束值才发生改变
运行时堆栈:代码块。自动变量auto
硬件寄存器: 寄存器变量register
static 关键字
当static修饰函数或者代码块之外的变量时。它用于修改标识符的链接属性,
当static修饰代码块内部的变量声明时,它用于修改变量的存储类型