c++指针(二)

本文详细介绍了C++中的指针,包括变量的存储、指针的声明、赋值初始化、取地址与间接引用运算符、指针的加减法以及指针常量和常量指针的区别。特别强调了使用指针前初始化的重要性以及指针与变量地址、内存操作的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

c++指针(二)

一.变量:
c++中变量包含两部分内容:存储变量的地址(位置),该地址上存储的值(内容)

    int num = 20;
    cout << "num的位置:"<<&num << endl;
    cout<<"num的内容:"<<num;

输出:

num的位置:012FFB28
num的内容:20

模型解释

解释num += 1;语句的执行过程:
首先源程序经过编译器处理后,将num变量分配到指定的内存地址上,在执行该语句是,首先根据num找到对应的内存地址(0x112FFB28)按照int形4字节的规则解析0x112FFB28~0x112FFB41存储的数据,即取出num的值20,执行增量+1操作,再将得到的数据放回原地址上。此种按变量的地址直接存储变量的方法称为“直接访问”方式。存储变量的内存空间的首地址称为该变量的地址。
二.指针 ——间接访问方式
注意:指针也是变量,自然也具有变量的属性:内容和位置
指针具体的说是存储另一个对象的地址的变量

  • 内容(值):另一个对象的地址
  • 位置(地址):存储该指针变量的地址

    1.声明:

类型 * 变量名1(,*变量名2... ...

解释:

1>.类型:明确指针指向的数据类型,指针只存放变量的首地址,必须指定变量所占的内存和数据是如何组织的,比如4字节整型数,4字节浮点型和更复杂的类和结构体型,类型向编译器表明了解析方式。

    int num = 0x00ff00ff;
    cout << "num的位置:"<<&num << endl<<"num的内容:"<<num;
    int *pint = &num;
    short *pshort = (short*)&num;
    cout << "*pint=" << *pint << endl;
    cout << "*pshort =" << *pshort << endl;
    float *pfloat =(float*) &num;
    cout << "解析为浮点数:" << *pfloat << endl;

输出:

num的位置:001DFEA4
num的内容:16711935
*pint=16711935
*pchar=255
解析为浮点数:2.34184e-38

short占两个字节,故编译器在解析*pshort时,只解析001DFEA4和001DFEA5两个字节的内容,故255,浮点数与整数的解析方式不同,故同样的地址,同样的字节数,但解析后的数据也不同
2>.在一行语句中同事声明多个指针变量是,一定按照上述声明方式声明,即每一个指针变量需要一个指针变量说明符‘*’,比如
int *lp1,*lp2
而int *lp1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值