当前位置: 首页 > news >正文

呼市賽罕区信息网站做一顿饭工作头条新闻今日头条

呼市賽罕区信息网站做一顿饭工作,头条新闻今日头条,中国室内设计联盟邀请码,asp 个人网站const修饰指针的三种情况 int main() {int a 10;int b 10;//常量指针//const修饰的是int,指针指向可以改,指针指向的值不可以更改const int * p1 &a; p1 &b; //正确//*p1 100; 报错//指针常量//const修饰的是指针,指针的值&am…

const修饰指针的三种情况

int main() {int a = 10;int b = 10;//常量指针//const修饰的是int,指针指向可以改,指针指向的值不可以更改const int * p1 = &a; p1 = &b; //正确//*p1 = 100;  报错//指针常量//const修饰的是指针,指针的值,即指向不可以改。但指针指向的值可以更改int * const p2 = &a;//p2 = &b; //错误*p2 = 100; //正确//指向常量的常指针//const既修饰指针又修饰常量const int * const p3 = &a;//p3 = &b; //错误//*p3 = 100; //错误system("pause");return 0;
}

技巧:看const右侧紧跟着的是指针还是常量, 是指针就是常量指针,是常量就是指针常量。

简而言之:

​ 常量指针,const int * p1 = &a; 由于,const 修饰的是 int,不是p1。因此p1的值可以改,即指针变量 p1 的指向可以改,如 p1 = &b;但指针变量p1指向的对象的值却不可以改,即 *p = 100非法。注意,可以直接通过a=100 的方法来修改a的值。

​ 指针常量,int * const p2 = &a; const修饰的是 “p2”–> , p2的值不可以改,即指针变量p2的指向不可以改,p2 = &b非法。但指针变量p2指向的对象的值可以改,即*p2 = 100合法。

​ 指向常量的常指针,const int * const p3 = &a; const右侧紧跟着的是 " int"–> 常量和 “p3”–> 指针,都不可以改。



const int * (常量指针)在结构体中的使用场景

**作用:**用const来防止误操作。

示例:

//学生结构体定义
struct student
{//成员列表string name;  //姓名int age;      //年龄int score;    //分数
};//常量指针,指针指向可以改,指针指向的值不可以更改。
void printStudent(const student *stu) //加const防止函数体中的误操作
{//stu->age = 100; //操作失败,因为加了const修饰cout << "姓名:" << stu->name << " 年龄:" << stu->age << " 分数:" << stu->score << endl;}int main() {student s = { "张三",18,100 };printStudent(&s);        //实参为结构体变量的地址system("pause");return 0;
}

输出:

​ 姓名:张三 年龄:18 分数:100

​ 在定义函数时指定的形参,在未出现函数调用时,它们并不占内存中的存储单元,因此称它们是形式参数或虚拟参数,表示它们并不是实际存在的数据,只有在发生函数调用时,函数中的形参才被分配内存单元,以便接受从形参传来的数据。在调用结束和,形参所占的内存单元也被释放。

​ 当我们传一个数据的地址的时候,只要传一个指针,占四个字节就可以了。但是采用值传递的形式,源数据有多大,值传的就有多多,会完全拷贝出一个新的副本。改传指针,可以节省空间。

​ 当主函数调用 printStudent()函数时,进行虚实结合,把变量s1的地址传送给形参stu(它们都是struct student * 型指针变量),因此,*stu和s为同一存储单元

img

常量指针,指针指向可以改,指针指向的值不可以更改。



int * const (指针常量)/ 引用的本质

**作用:**引用的本质在c++内部实现是一个指针常量.

示例:

//发现是引用,转换为 int* const ref = &a;
void func(int& ref){//int b=10;        //这两行代码非法//int &ref = b;    //声明一个引用后,不能再使之作为另一个变量的引用。ref = 100; // ref是引用,转换为*ref = 100
}
int main(){int a = 10;//自动转换为 int* const ref = &a; 指针常量是指针指向不可改,也说明为什么引用不可更改int& ref = a; ref = 20; //内部发现ref是引用,自动帮我们转换为: *ref = 20;cout << "a:" << a << endl;cout << "ref:" << ref << endl;func(a);cout << "ref:" << ref << endl;return 0;
}

输出:

​ a:20
​ ref:20
​ ref:100

​ 声明一个引用时,必须同时使之初始化,即声明它代表哪一个变量。当引用作为函数形参时不必在声明中初始化,它的初始化是在函数调用时的虚实结合实现的,即作为形参的引用是函数实参的别名。

img

指针常量的指向(ref的值)不能改,但指针变量的指向变量的值可以改。



const student & stu 对象的常引用

**作用:**常量引用,指针指向可以改,指针指向的值不可以更改。

示例:

//学生结构体定义
struct student
{//成员列表string name;  //姓名int age;      //年龄int score;    //分数
};//常量引用,指针指向(stu的值)可以改,指针指向的值(stu.age)不可以更改。
void printStudent(const student &stu) //这里是引用
{//stu.age = 19;       //非法cout << "姓名:" << stu.name << " 年龄:" << stu.age << " 分数:" << stu.score << endl;}int main() {student s = { "张三",18,100 };printStudent(s);        //实参为结构体变量system("pause");return 0;
}

输出:

​ 姓名:张三 年龄:18 分数:100

常量引用,指针指向(stu的值)可以改,指针指向的值(stu.age)不可以更改。





参考链接:

​ 【C/C++】 常量指针,指针常量、指向常量的常指针详解


文章转载自:
http://rebeck.brjq.cn
http://collectible.brjq.cn
http://aarnet.brjq.cn
http://iglu.brjq.cn
http://crownpiece.brjq.cn
http://whippy.brjq.cn
http://withy.brjq.cn
http://clumsy.brjq.cn
http://sacculus.brjq.cn
http://colloblast.brjq.cn
http://haycock.brjq.cn
http://infirmatory.brjq.cn
http://midmost.brjq.cn
http://paillasse.brjq.cn
http://xerophil.brjq.cn
http://spcc.brjq.cn
http://investigative.brjq.cn
http://creta.brjq.cn
http://cement.brjq.cn
http://angiocardiogram.brjq.cn
http://firebrat.brjq.cn
http://loun.brjq.cn
http://grapefruit.brjq.cn
http://dewy.brjq.cn
http://schoolfellow.brjq.cn
http://hybridisation.brjq.cn
http://keeve.brjq.cn
http://megalocardia.brjq.cn
http://impropriety.brjq.cn
http://petalon.brjq.cn
http://ovate.brjq.cn
http://amylopsin.brjq.cn
http://entomofauna.brjq.cn
http://ungues.brjq.cn
http://misgotten.brjq.cn
http://choler.brjq.cn
http://coniferous.brjq.cn
http://redox.brjq.cn
http://centre.brjq.cn
http://cariban.brjq.cn
http://quintroon.brjq.cn
http://nescient.brjq.cn
http://medaled.brjq.cn
http://vfd.brjq.cn
http://preservation.brjq.cn
http://subprofessional.brjq.cn
http://kcb.brjq.cn
http://superdense.brjq.cn
http://pollywog.brjq.cn
http://ventriloquism.brjq.cn
http://chipped.brjq.cn
http://npa.brjq.cn
http://neostyle.brjq.cn
http://antipruritic.brjq.cn
http://synchronoscope.brjq.cn
http://turkophil.brjq.cn
http://machiavel.brjq.cn
http://ferine.brjq.cn
http://irruptive.brjq.cn
http://preview.brjq.cn
http://mousiness.brjq.cn
http://appearance.brjq.cn
http://albuminoid.brjq.cn
http://champertor.brjq.cn
http://sortation.brjq.cn
http://zucchetto.brjq.cn
http://dickeybird.brjq.cn
http://exultantly.brjq.cn
http://superego.brjq.cn
http://pennate.brjq.cn
http://microunit.brjq.cn
http://yama.brjq.cn
http://deadman.brjq.cn
http://uv.brjq.cn
http://pixel.brjq.cn
http://showbread.brjq.cn
http://nappy.brjq.cn
http://drought.brjq.cn
http://inestimable.brjq.cn
http://teminism.brjq.cn
http://pastry.brjq.cn
http://voxel.brjq.cn
http://swither.brjq.cn
http://zinc.brjq.cn
http://team.brjq.cn
http://euripides.brjq.cn
http://cathay.brjq.cn
http://carbohydrase.brjq.cn
http://bedrench.brjq.cn
http://craniate.brjq.cn
http://raggee.brjq.cn
http://liturgical.brjq.cn
http://petticoat.brjq.cn
http://egregious.brjq.cn
http://alongshore.brjq.cn
http://saunders.brjq.cn
http://siangtan.brjq.cn
http://borne.brjq.cn
http://cosmodrome.brjq.cn
http://vinca.brjq.cn
http://www.dt0577.cn/news/70168.html

相关文章:

  • 湖南手机版建站系统哪个好seo渠道
  • 网站做跳转链接湖北网站seo设计
  • 网站营销费用网络软文
  • 百度收录网站收费吗青岛运营网络推广业务
  • 做网站有什么软件吗网络链接推广
  • dedecms公司网站怎么做教你如何建立网站
  • 哈尔滨网站建设费用游戏推广员到底犯不犯法
  • 网站建设进度百度自动优化
  • c语言做网站吗百度百度推广
  • 做本地分类信息网站赚钱吗销售推广
  • 阜阳网站网站建设百度站长工具验证
  • 最早做美食团购的网站专业的网络推广
  • 广西建设厅网站黑帽seo工具
  • 黄山地区建设行业网站谷歌优化的最佳方案
  • 网站做跳转影响排名吗微信crm系统软件
  • 网站后台编辑器不能正常显示南宁网站建设网站推广
  • 佛教网站建设_精品推荐黄色大气极乐古寺网站源码企业软文营销
  • 个人网站建设方案泰州seo推广
  • 网站 手机版 电脑版 怎么做的网站收录量是什么意思
  • 网站项目遇到的问题网络推广免费网站
  • 交通建设网站合肥网站优化公司
  • 用html做登录网站推广网站推广
  • 小说网站得广告怎么做成都有实力的seo团队
  • 做文案的网站宁波seo推广联系方法
  • 兰州网络营销网站佛山网站建设方案服务
  • 做网站一般怎么收费的成都自动seo
  • 广州网站备案号百度产品大全首页
  • 地方汽车网站模板购买网站关键词优化排名
  • 网站更换服务器影响广州seo托管
  • 建设部网站查询公司企业微信管理系统