const和指针 Adonis 愿做人间逍遥客 目录 收起 1.指向常量的指针 2.常量指针 3.指向常量的常量指针 1.指向常量的指针 这种情况下,不能通过指针直接修改指向对应内存空间的值,就好像指向的是一个常量,但是对变量(a)重新赋值是不受影响的 //指向常量的指针,指向可以改,指向的值不能改 int a = 10; int ...
指针是const 表示一旦得到了某一个变量的地址,不能再指向其他变量。换句话说:这个指针是一个常量,而常量是不能变的。 举例代码: #include<stdio.h>intmain(void){inta=60;int*constp_a=&a;printf("%d\n",*p_a);p_a++;return0;} IDE报错提示:表达式必须是可修改的左值 所指是const 表示不能通过这个指...
指针p4称为const指针。它和指向const对象的指针恰好相反,它不能够修改所指向对象,但却能够修改指向对象的数值。另外,这种指针在声明时必须初始化。 3.指向const对象的const指针 const int d=30; const int *const dp=&d; 指针dp既不能修改指向的对象,也不能修改只想对象的值。
如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量; 如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。 常量指针 const靠近数据类型,就是修饰该类型的变量为常量 . 例: constintx=20;//定义int类型的符号常量x,x=20constint*p=&x;//定义指向常量的指针p,//可以改变...
// 第一种情况:指针常量inta=2;// const作用:使其无法通过指针来修改变量constint*p=&a;// 错误,表达式必须是可修改的左值*p=3;// 正确a=4;// 4cout<<*p<<endl;// 同样地,有人习惯这种写法,作用是一样的,看个人喜好即可intconst*p2=&a;// 第二种情况:常量指针inta=2;// const作用:使指针p无法...
const在前面和在后面完全相同。 例如,对const char *p进行翻译: 首先看到p:p is 然后是*:p is pointer to 然后是char:p is pointer to char 然后是const:p is pointer to read-only char 翻译为中文:p是指向只读的char的指针 按照这种方式解释,我们对上面四个语句解释如下: ...
由此看出,pi是常量,常量在初始化和赋值时,类型必须严格一致。也就是 const修饰指针本身时,=号两边的变量类型必须严格一致,否则不能匹配。 2.const修饰指针指向的变量(或对象) 此种情形下,通过间接引用指针不可改变变量的值,假设指针为p,则*p不可变,下面以例子说明: ...
const int a的意思是你自己保证不以任何形式修改a,你做了这个保证却又要修改a,这就是自相矛盾了 GTA小鸡 吧主 13 const变量的地址只能被赋给const指针,将const变量的地址赋值给非const指针并修改它是违反C语言标准的行为。违反标准的代码不再具有可靠性,可能出现任何后果。 贴吧用户_Q4ybGQR 帕秋莉糕 12 ...
1、const和指针的关系 const是修饰变量的,通常修饰的是它的右部,比如const intp=&a;const修饰p,说明p的 指向可以发生改变,而不能通过*p去改变指向的变量的值,const必须初始化。 const引用可以引用变量也可以引用常量,也可以引用字面常量,而普通引用则不能引用字面常量。
本章节是Linux C语言基础系列资料里其中的一节,后续会陆续的更新出来:http://www.makeru.com.cn/live/1392_238.html?s=45051, 视频播放量 771、弹幕量 0、点赞数 9、投硬币枚数 0、收藏人数 10、转发人数 1, 视频作者 IT杂货铺, 作者简介 ,相关视频:【Linux c语言入门】