1.指针的大小
指针的大小并不与它的类型有关,而是和平台有关,在X86平台上指针大小为4字节;在X64平台上是8字节。
2.指针的定义方式
1.
2.
3.使用宏定义:
4.使用typedef:
3.指针与const 的结合
提示我们13行,16行有错误;
对于13行:const 修饰p,使得p成为常量只能指向a,不可以改变
对于16行:const 修饰*p,使得*p成为常量, 不可以通过*p改变 a的值,但是可以直接对a赋值,因为定义变量a是没有用const修饰。
4.一级指针与一维数组的联动
这说明数组名是一个地址,它和数组首元素的地址一样。
指针也是地址,所以数组名a相当于一个指针,他和指针有着类似操作,*a=a[0]=*p=p[0];
a[i]=*(a+i)=*(p+i)=p[i];
再来说一下数据存储的方式:按字节以16进制储存。
main()函数数据存放在栈中,先定义的变量地址高于后定义的变量地址。
因为栈是从高地址向低地址开辟的。
那么一个数据是怎样存储的?
先说结论:windows上小端存储(高位->高位,低位->低位),Linus上大端存储(低位->高位,高位->低位)。
此处只证windows.
可得出如下结论: