const char* a 和 char* const a 简单辨别

来源:互联网 发布:gitlab windows 编辑:程序博客网 时间:2024/05/19 05:30
通过我对C++短暂的学习,也通过一些书籍的了解,对const有了一些新的认识,
例如 const char* a 、char * const a,如果const在*左边就是指向的是常量 , 如果const在*右边,那指针就是常量 -----引用《Effictive C++》
#include<stdio.h> int main(){char a1[] = "Tx is Beautiful!";const char* pa = a1;//char* const pa = a1;char a2[] = "Tx is Cute!";pa = a2;//pa[2] = '3';printf("%s",pa);return 0;}

目前我浅薄的实践告诉我,const char* pName 可以更改指向的字符串,但不可以更改指向的字符串的内容,否则会报错!

看了一些大大的Blog大概就是指向常量的指针,不能更改常量内容

error: assignment of read-only variable `pa'    //大概就是不能给只读常量赋值

#include<stdio.h> int main(){char a1[] = "Tx Beautiful!";//const char* pa = a1;char* const pa = a1;char a2[] = "Tx is Cute!";pa = a2;//pa[2] = '3';printf("%s",pa);return 0;}
而char* const pName  // 常量型指针不能更改地址,但能改变指向的内容。





原创粉丝点击