1.多字节数据的地址是在最左边还是最右边的位置,不同的机器有不同的规定,这也正是大端和小端的区别,地址也要遵从边界对齐
2.高级语言的一个特性就是通过名字而不是地址来访问内存的位置,但是硬件仍然通过地址访问内存位置
3.内存中的变量都是义序列的0或1的位,他们可以被解释为整数或者其他,这取决于他们被使用的方式,如果使用的是整数算数指令,这个值就被解释为整数,因此不能简单的通过一个值的位来判断它的类型
4.如果我们把一个变量声明为某种类型,那么当程序方位这个变量时,编译器就会产生这种类型的指令,当采用不适当的方式访问该变量时,编译器就会产生错误或警告
5.段错误:对未初始化的指针进行访问,指针进行创建后和使用前应该检查其合法性
6.NULL指针:
7.*100=25 是非法的,因为100是整型,而间接访问操作只能用于指针变量表达式
8.所有的单目运算符的优先级都是相同的,包括++ -- *等,结合顺序是从右到左的
9.指针是个左值,经过合法初始化的指针经过间接访问操作后也是个左值
10.&ch是个右值,它的结果应该存在计算机的某个地方,但是却无法知道该值,所以它不是一个合法的左值
11.指针可以进行+ -的算数运算,但仅限于在同一个数组或者动态分配的内存
12.标准允许指向数组元素的的指针与指向数组最后一个元素后面的内存位置的指针进行比较,但不允许与指向数组第一个元素之前的那个内存位置进行比较 int values[N_VALUES];外部变量,静态空间存储),int *vp;for(vp=&values[0];vp<&values[N_VALUES];vp++)
13.任何指针之间都可以进行比较,邪恶是它们相等或不相等,如果两个指针都指向统一个数组的元素,那么他们之间还可以执行< < = > >=等关系运算,用于判断它们在数组中的相对位置,
14.大、小端,边界对齐