队c语言的认识
指针初始化 : static char *allocp = alloc_buf, 将char数组的首地址赋值给char类型指针;
-- 初始化内容 : 0 或者 地址;
-- 地址限定 : 对指针初始化的地址, 该地址存储的数据的类型必须是该指针类型;
内存可用判断 : alloc_buf + ALLOCSIZE - allocp >= n;
-- 意义 : alloc_buf 是数组首地址, ALLOCSIZE 是数组大小, allocp是可用内存偏移量, alloc_buf + ALLOCSIZE -allocp 结果是可用的内存量, 如果可用内存大于n, 则可以赋值;
-- 如果内存不足 : 内存不足, 将0作为地址返回, C语言中设定 0 不是有效的数据地址, 0地址的数据为NULL, 返回0表示发生了异常事件;
指针整数转换特例 : 指针 和 整数 不能相互转换;
-- 通常情况 : 指针 和 整型 之间不能相互转换, 0 除外;
-- 特例 : 常量 0 可以赋值给指针, 指针 可以和 常量 0 进行比较, 这里注意是常量;
-- 0的特殊性 : NULL 可以代替 常量0, 常量0 是一个特殊值;
指针运算 :
-- 比较运算 : 两个指针都指向同一个数组中的元素, 那么两个指针之间的比较是有意义的, 指向两个不同数组元素的指针之间比较无意义;
-- 加减运算 : 指向数组元素的指针, 进行加减运算, 地址的计算按照 运算数 * 指针指向元素的大小 进行计算;
计算字符串长度示例 :
-- 代码 :