C++——字符串和指针


先看一段代码

char str[12] = ""Hello;
char *P = str;
*p = 'h';//改变第一个字母

char *ptr = "Hello";
*ptr = 'h'; //错误

字符串可以用字符指针char*、字符数组等来表示。

第一个字符串使用数组开辟的,他是可以改变的量。

字符串指针变量ptr本身是一个变量,用于存放字符串的首地址。可以改变ptr使他指向不同的字符串,但不能改变ptr所指的字符串常量。因为定义指针时,编译器并不为指针所指向的对象分配空间,他只是分配指针本身的空间,所以“Hello”会被当成常量。放到.rodata区域。参考:剖析.o文件ELF组成

为了提醒自己别犯错误,也是提倡的写法

const char* ptr = "Hello";

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM