char *const p;与 const char * p;的区别
答案:4 悬赏:50 手机版
解决时间 2021-04-06 20:17
- 提问者网友:太高姿态
- 2021-04-06 12:34
char *const p;与 const char * p;的区别
最佳答案
- 五星知识达人网友:天凉才是好个秋
- 2021-04-06 13:03
const char *p;的意思是p指向的目标空间的内容不可变化,char * const p;的意思是指针p的值不可变,但它指向目标的值可变。
1、char * const p : 定义一个指向字符的指针常数,即const指针,其实const 放在p前证明p是一个const,p是不允许改变的。
2、const char* p : 定义一个指向字符常数的指针,const 是c描述char的,char是const,所以指针可变。
扩展知识:
char const* p : 等同于const char* p;const char **p是一个指向指针的指针,那个指针又指向一个字符串常量,char ** p也是一个指向指针的指针,那个指针又指向一个字符串变量。
1、char * const p : 定义一个指向字符的指针常数,即const指针,其实const 放在p前证明p是一个const,p是不允许改变的。
2、const char* p : 定义一个指向字符常数的指针,const 是c描述char的,char是const,所以指针可变。
扩展知识:
char const* p : 等同于const char* p;const char **p是一个指向指针的指针,那个指针又指向一个字符串常量,char ** p也是一个指向指针的指针,那个指针又指向一个字符串变量。
全部回答
- 1楼网友:酒者煙囻
- 2021-04-06 15:26
const char * p等价于 char const *p ,定义出来的指针可以p++;
char * const 定义出来的指针不可以++;
const 表“只读”
- 2楼网友:冷風如刀
- 2021-04-06 15:04
char *const p 修饰指针为常量 指针指向内容可以是变量~既 p++这样的操作不合法 *p='3' 合法
const char * p 是p指向的内容是常量~p是变量~
~既 p++合法 *p='3' 不合法
const char * p 是p指向的内容是常量~p是变量~
~既 p++合法 *p='3' 不合法
- 3楼网友:平生事
- 2021-04-06 14:19
前者定义P为常量,即只能单向赋值一次,P++展开为p=p+1,重复赋值给常量,出错,后者P为地址变量,地址变量是指向该变量的存储地址值如:4B3F6A,不能赋给一个字符值(字符相当于ascii表中对应的整数)如强制赋值,会把原地址变量P变为一个两位数的整数,造成地址指针溢出。而p++,则表示把该地址变量向下一个存储单元移动一位,如4B3F6A到4B3F6B.所以合法。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯