1.不能简单地通过检查一个值的位来判断它的类型,类型是通过值的使用方法隐式地确定。
2.一个变量的值就是分配给这个变量的内存位置所存储的数值。
3.声明一个指针变量并不会自动分配任何内存。在指针间接访问之前,指针必须初始化,或者使它指向现有内存,或者给它动态分配内存。
4.在对指针进行间接访问操作之前,首先必须要检查指针是否为NULL,对NULL指针执行间接访问操作的后果因编译器而异。
5.偶尔需要使用指针常量,通过将一个整型强制转化为指针类型来创建它。
*(int *100) = 25; *&a = 25 /*等价于a= 25*/
6.指针加1将会指向下一个变量,与该变量中在内存中占几个字节大小无关。
7.指针的算术运算: 指针 +/- 整数标准中定义这种形式只适用于指向数组中的某个元素的指针,但是,这种形式页适用于malloc函数动态分配的内存。如果一个指针减去一个整数之后,运算结果产生指针所指向的位置在数组第一个元素之前,那么它是非法的;如果指针加上一个整数之后,运算结果产生的指针指向数组最后一个元素,后面的那个内存位置(但是不对这个指针执行间接访问操作)是合法的,不过在往后就是不合法的了。
/*strlen函数实现*/ int my_strlen(char * string) { int len = 0; while(* string++ != '