C常见问题之字符串的数组形式与指针形式的区别
来源:互联网 发布:网络传送带使用教程 编辑:程序博客网 时间:2024/05/02 11:00
由双引号括起来的字符串常量属于静态存储类型,它被存储在内存的静态存储区内,所以无论字符串常量出现在程序的什么地方,它在程序的整个运行过程中只存储一份。
如果用字符串常量初始化字符数组,就是从静态存储区把整个字符串复制给数组。例如:
char a[] = "hello";
如果用字符串常量初始化字符指针,就是把字符串在静态存储区的地址复制给指针。例如:
char *p = "world";
这两种形式的一个重要区别是不能通过指针来修改字符串的值,但是字符数组不存在这个问题,如下语句是错误的:
p[0] = 'p';
而如下语句没有问题:
a[0] = 'a';
为了避免通过指针修改字符串的错误,建议将指针指向的对象类型声明为const char,如下所示:
const char *p = "world";
- C常见问题之字符串的数组形式与指针形式的区别
- C指针与数组两种形式的区别
- C语言字符数组的两种形式与区别
- C语言字符串的指针—字符串的表示形式
- 字符串表示形式—字符数组和字符指针的区别
- 函数指针、数组指针、字符串指针的定义形式与运算符举例、指针变量做函数参数用法
- 《C和指针》——数组的奇怪形式
- 一劳永逸:关于C/C++中指针、数组与函数复合定义形式的直观解释
- 一劳永逸:关于C/C++中指针、数组与函数复合定义形式的直观解释
- 一劳永逸:关于C/C++中指针、数组与函数复合定义形式的直观解释
- 一劳永逸:关于C/C++中指针、数组与函数复合定义形式的直观解释
- 一劳永逸:关于C/C++中指针、数组与函数复合定义形式的直观解释
- 以指针的形式和以下标的形式访问指针?以指针的形式和以下标的形式访问数组?
- C Language Study - 指针的形式 & 下标的形式
- C#-将数组转换成货币形式的字符串
- javascript的数组形式与php的数组形式
- 用指针表示二维数组的形式
- 数组指针存储形式的栈
- Ubuntu 10.04 修改开机boot
- 从零开始学WCF(6)数据协定
- Flash&Flex大全
- [jbpm]一个完整的spring+jbpm+mysql整合例子
- Linux下安装Python-3.3.2
- C常见问题之字符串的数组形式与指针形式的区别
- SAE 搭建 Discuz
- java实现栈(链表方式)
- maven 配置文件说明
- 中国App如何挑战全球?
- FAT文件系统原理
- 开源软件之七宗罪以及背后的阴谋
- HTML5标签练习
- 鼠标滚动缩放图片效果