const在指针中的用法:
const int *a;指向常整型的指针
int const *a;指向常整型的指针(同上)
int *const a;指向整型的常指针(指针不可以改变,但是指针指向的对象的值可以改变)
const int * a;指向常整型数的指针(指针可以改变,但是指向的值是不可以改变的)
const int *a const;指向常整数型的常指针(指针和指针指向的内容都不可以进行改变)
const三个作用:
修饰常量 修饰函数参数 修饰函数返回值
define不同于const有些调试器不能define定义的宏常量进行调试
static:
(1)模块内,函数体内,修饰的局部变量只能在函数体内使用
(2)模块内,函数体外,修饰的变量可以被所用的函数使用
(3)模块内,修饰的函数可以被其他的函数调用
voliate:不同于一般变量,随时的变化,确保不会因为编译器的优化而变化
(1)在中断中使用的非自动变量
(2)在寄存器中(状态寄存器)使用
(3)在多进程共享的变量
malloc:进行内存的堆区分配,一般系统默认的最小是4K