A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

以前不会 现在打算要弄会他    求大神指导

8 个回复

倒序浏览
就比较*和const位置,*在前说明p这个指针不能变,即它指向固定地址,*在后说明p指向的单个变量、数组等的值不能被改变,比如a=1,在第二种情况下若后面再跟a=3等等就会报错,但普通情况a为变量可以随便改变值
回复 使用道具 举报
const char *p 表示 指针p 所指向的数据不能被改变
char * const p  表示指针变量 p不会被改变;
回复 使用道具 举报
wdcew 发表于 2015-7-22 00:07
const char *p 表示 指针p 所指向的数据不能被改变
char * const p  表示指针变量 p不会被改变; ...

指针变量 p不会被改变 是什么意思
回复 使用道具 举报
llo 发表于 2015-7-23 21:50
指针变量 p不会被改变 是什么意思

指针变量P 存储的是地址嘛, 如果使用char* const p  ,那么 指针p存储的地址,你无法再更改,换言之,你无法再让指针 p 指向别的变量。
int a =1;
int b =2;
char* const p =a;
p = &b; //系统会报错
*p = b; //正常运行
当 换成下面代码:

int a =1;
int b =2;
const char *p =a;
*p = b;//系统报错, 因为无法修改指针p 指向的变量的数据。
p = &b;//正常运行
回复 使用道具 举报
如何使用const
(1)修饰变量
            const int a=10;

(2)修饰指针变量
           int  b=20;
           int a=10;
           const int *p=&a;       
          *p=30;             错误的    // p的指向可以改变,但是指向变量的值不能改变
       

             int  b=20;
           int a=10;
           int * const p=&a;       
           *p=30;                        //指针变量指向的变量值可以改变,指向不能变

        const  int * const p=&a    //const修饰的指针的指向和值都不能改变
       
回复 使用道具 举报
爱生活爱程序 来自手机 中级黑马 2015-8-1 12:47:41
7#
前者*p 不可变,后者p,不可变
回复 使用道具 举报
当const在*p的左边,则其指向变量的值不能修改const修饰的是*p(*p就相当于指针所指向变量的值);若const在*和p之间,const修饰的是p,其指向不能修改(p就是指针变量)
回复 使用道具 举报
有一个简单记法   const离谁近谁就不可变
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马