/*
读书笔记类型多种多样,有摘抄型的,有感想型的,有批注型的,有摘要型的……
现在正在研读《C和指针》,其中有很多我认为必要的知识点,摘抄并简单整理了一下,记录在这里。
*/
11.位操作技巧:
value |= 1 << bit_number;/*指定位置1*/
value &= ~( 1 << bit_number ); /*指定位清0*/
12.知识点1:
if(a>5)
b = 3;
else
b = -20;
可以写成:b = a > 5 ? 3 : -20;
知识点2:
sizeof(a)返回的a的长度是字节数。
/*这里记录的两个知识点是最最基础的C语言点,之所以记录在这里,是因为自己的基础知识不牢固,在某次面试时被这些基础知识所虐。记录于此,起个警示作用吧*/
13.变量的值就是分配给该变量的内存位置所存储的数值,即使是指针变量也不例外。
14.所谓左值与右值——左值是那些能够出现在赋值符号左边的东西,右值是那些可以出现在赋值符号右边的东西。
15.把整型值25存放在地址100的位置中:
*(int *)100 = 25;
首先将100强制转换成“指向整型的指针”类型,再进行间接访问。
16.实际上,绝大多数编译器都不会检查指针表达式的结果是否位于合法边界之内。因此,程序员应该负起责任,确保这一点。类似,编译器将不会阻止你取一个标量变量的地址并对它执行指针运算,即使它无法预测运算结果所产生的指针指向哪个变量。越界指针和指向未知值的指针是两个常见的错误根源。当你使用指针运算时,必须非常小心,确信运算的结果将指向有意义的东西。
17.声明一个指针变量并不会自动分配任何内存。在对指针执行间接访问前,指针必须进行初始化;或者使它指向现有的内存,或者给它分配动态内存。对未初始化的指针变量执行间接访问操作是非法的,而且这种错误常常难以检测。其结果常常是一个不相关的值被修改。这种错误是很难被调试发现的。
18.使用函数原型最方便(且最安全)的方式是把原型置于一个单独的文件,当其他源文件需要这个函数的原型时,就使用#include指令包含这个文件。