指针的概念:
指针是一种数据类型,指针变量就是保存了数据地址的变量
什么类型的指针保存着什么类型数据的地址,也就指向什么类型的变量。比如int类型的变量地址就需要int类型的指针来存储。在c语言中,允许一个变量存放指针变量的地址,就是所谓的多级指针(在后面会提到)。
在x86系统中,指针占4个字节,在x64系统中,指针占8个字节。
指针使用:
1.指针与二级指针的简单使用:
给指针赋值时,使用的是引用符来表示变量的地址;图中第四行*p就代表a;**p也是。尽量在定义指针的时候就给指针赋值,避免野指针问题。
2.const与一级指针的结合:
const与指针结合有俩种形式,第一种为const放在指针的前面,意思为指针指向的数据不能被修改;第二种为指针的后边,意思为指针本身不能被修改。
3.指针与数组:
运行结果为:
这说明:
1)指针指向数组的时候保存的是数组首元素的地址;
2)指针可以进行加减运算, +1即什么类型的指针加1*什么类型的字节。
上图中,指针+1后指向了数组第二个元素。
4.指针数组与数组指针:
指针数组:保存着地址的数组;
例如:const char* brr[]={"hello","word","1234"}
指针数组必须使用const来定义(指向的字符串是不可修改的常量)。(指针数组只能指向字符或字符串的地址)
数组指针:
p:指向一个数组的指针:
其作用为:
5.指针可以用来判断系统的存储模式:
char* 类型的指针+1和int* 类型指针+1所加字节数不相同,因此可以用来判断系统大小端存储模式。