将指针指向数组,不需要使用取址符&,并且表示的是指针执行数组第一个元素的地址:
int * p = arr 与 int * p = &arr[0]是相同的操作。
指针的加减法:
1. 想要让指针p指向第二个元素,只需要p+1就可以了。
注意:p+1的操作实际上是指针存放的地址+指针类型的大小。如果指针是一个int*的类型,则p+1就是向后移动4个字节的位置,如果是char*的类型,p+1则是向后移动2个字节的位置。
2. 指针支持p++、p--的操作
指针除了可以指向数组外,还可以指向一个结构体。
指针声名
指针运算
地址 * > 内存
地址 &<内存
int*p=&a; //变量A的地址赋值给指针P,P指向变量A
指针和数组
int*p=arr;(数组变量名)
p+1(实际上是地址+类型大小)
p[1]=>*(p+1)指针偏移操作
指针和结构体
struct S *p=&s;
p->a=12;
p->b=22;
数组名就是第一个指针 操作普通变量就用. 操作指针就用箭头->
指针的运算。
普通变量使用.
指针变量使用->
*在不同地方的含义
1、在定义指针中时,*为指针定义符
2、在可执行语句指针之前,*为指针引用符
3、别忘了还有运算符的作用
&在不同地方的含义
1、在定义变量中,&为引用定义符,且必须初始化引用。
2、在可执行语句中,&为取址符
如以上描述有误,欢迎批评指针!!!
普通变量用点,指针用箭头
普通变量用 点 ,指针变量用 箭头
.与->的不同用法
arr里面放的是数组内第一个元素的地址,等同于&arr【0】
指针的本质(*:解引用、&:取地址)