语法:
-
打印地址:
printf("address of value2: %p ", &value2);
-
C99 支持VLA(可变长数组),C11 放弃了这一创新的举措,把VLA设定为可选,而不是语言必备的特性
-
int *ar形式和int ar[]形式都表示ar是一个指向int的指针。但是,int ar[]只能用于声明形式参数。第2种形式(int ar[])提醒读者指针ar指向的不仅仅一个int类型值,还是一个int类型数组的元素。
-
函数声明,函数原型,函数定义 的区别。
-
如果指向两个不同数组的指针进行求差运算可能会得出一个值,或者导致运行时错误。
-
-
把const数据或非const数据的地址初始化为指向const的指针或为其赋值是合法的;只能把非const数据的地址赋给普通指针
-
一维数组名 表示一个指针,表示一个指向int的指针
printf()格式化输出
说明 | |
---|---|
%p | 指针地址 |
%u | 无符号十进制整数(unsigned int) |
关键字:
全局变量:
static:
目的是不用反复出栈,提高效率。
静态局部变量
和临时变量一样,但退出该函数后, 尽管该变量还继续存在,但不能使用它。
静态全局变量:
而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。
静态函数:
内部函数
auto: 默认存在,表示临时变量。
extern:同一文件中 告诉编译器num这个变量是存在的,但是不是在这之前声明的;引用不在同一个文件中的变量(全局)或者函数;引用另一个文件中的函数(不需要头文件包含?)。
register:寄存器变量,读取非常快
void *memset( void *dest, int ch, size_t count );
void * malloc(size_t size)
void *realloc( void *ptr, size_t new_size )