字符型指针与字符串常量
Posted imhuanxi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符型指针与字符串常量相关的知识,希望对你有一定的参考价值。
字符串常量在编译时系统给定存储位置,可以赋值给字符指针;此时可以通过下标进行访问,但不可以通过下标修改字符串的值。
字符指针指向字符数组时可以修改字符串的值。
#include <stdio.h> #include <string.h> int main() { char a[26]; char *b = "abc"; //定义时初始化 b="123"; //可以被重新赋值 //b[1] = ‘v‘; //不可以被修改 a[1] = b[1]; //可以通过下标读取 strcpy(a, "catdog"); strcat(a, "!"); b = a; //指向字符数组 b[0] = ‘x‘; //可以被修改 b[1] = "x"; //实际上将字符常量"x"的地址付给b[1],字符串将出现乱码 printf("%s ", a); system("pause"); return 0; }
以上是关于字符型指针与字符串常量的主要内容,如果未能解决你的问题,请参考以下文章
C 语言内存四区原理 ( 常量区示例 | 不同函数返回的相同字符串的指针地址相同 )
错误记录C 语言中通过指针操作字符串常量出错记录 ( 只有 栈内存 或 堆内存 中的数据才能通过指针修改 | 不要通过指针修改常量区的字符串 )