🎊 指针的初始化和赋值(简单说明)

指针的初始化和赋值(简单说明)

突然关于指针有个地方搞不明白,比如int *p=&a;我们不是说"*"是取值的吗,那么后面不应该跟的是一个数值,怎么是一个地址?

1、指针的初始化

指针初始化时,“=”的右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是int*p=0;除外,该语句表示指针为空)。此时,*p只是表示定义的是个指针变量,并没有间接取值的意思。

int a=6;

int *p=&a;(这句意思是p指向a的地址,并没有给指针p赋值的意思)

int b[10];

int *point = b; (b是数组,一维数组名代表数组首地址)

或者int *p = &b[0];

2、指针的赋值

指针的赋值,“=”的左操作数可以是*p,也可以是p。

当“=”的左操作数是*p时,p所指向的是对应地址存放的数据;

当“=”的左操作数是p时,p所指向的是地址。

int *p;

int a;

int b[1];

p = &a;

*p=a;

p = b;

数组的变量名b表示该数组的首地址,因此p=b;也是正确的。

🎈 相关推荐

关于 iOS 14 更新
🏷️ Bet体育365提款验证

关于 iOS 14 更新

📅 06-30 👀 3138
HTCM8青春版(探索HTCM8青春版的功能与特点)
🏷️ Bet体育365提款验证

HTCM8青春版(探索HTCM8青春版的功能与特点)

📅 07-04 👀 8686
​女生说切是什么意思,该怎么回复?
🏷️ beat365登录平台

​女生说切是什么意思,该怎么回复?

📅 07-28 👀 338
李沁是什么星座?天秤座名人李沁和肖战疑似恋情曝光!
🏷️ office365桌面应用

李沁是什么星座?天秤座名人李沁和肖战疑似恋情曝光!

📅 08-08 👀 8630
s4怎么删除软件(s4删除软件的方法)
🏷️ Bet体育365提款验证

s4怎么删除软件(s4删除软件的方法)

📅 08-02 👀 8862
如何将Android手机当成代理服务器为PC提供代理上网服务?
🏷️ Bet体育365提款验证

如何将Android手机当成代理服务器为PC提供代理上网服务?

📅 07-23 👀 7091