1.指针数据类型永远是4字节(32OS),不会因指向数据类型而改变。
2.* 的三个作用:定义指针;取ii江河指向地址里的值;运算符。
3.指针主要的意义——通过指向地址进而改变指向的那块地址里的值。比如,通过改变指针变量*p改变p指向的地址。
4.给指针赋值时等号左右两边的数据类型必须相同。比如左边数据类型为 int *那等号右边数据类型也必然是int *。
5.定义指针后不知指向谁,不妨先指向NULL。
6.不想改变指针的指向或指针指向的值时可以使用const修饰,左数右指。
7.数组arr与&arr[0]都是内存中地址,且等价。可以理解arr数组名就是地址,定义指针变量p直接接受地址。写int *p=arr;可以说arr赋值与p,也可以说p指向arr,不能说arr=p。
8.arr+1等于取下一个地址,可以输入输出。arr是数组名也是常量不可自加减,但可以将她赋值给指针变量p,使用p做自加减运算。
9.指针变量p++指针指向会发生改变;但p+1指针指向不会发生改变。
10.想用%s打印字符串是当作字符串打印,如果用%c打印字符串是当作字符打印注意使用for。
11.二级指针永远比一级指针多个 *。
12.判断数据类型——去掉变量名就是。
13.指向整型的指针叫整形指针,指向数组的指针叫数组指针,指向数组是一个整体,因此定义时要带&,指针数组则不同。
14.改变数组指针指向时必须保证将要指向数组的元素等同目前指向的保持一致!!
15.数组指针p+1是往增大的方向移动的一整个数组类型,p的指向不变;p++同上,但指向会发生改变;p-q,无意义。
16数组指针输入时不能写成p[i]或(*p)[i],因为这是对一维数组的输入,而数组指针指向不同的整个数组,正确应写成&(*p)[i]。
17.二维数组指针永远指向的是二维数组的一维数组,因 &arr[0]=arr,指针指向arr,因此不加 &。