首页 > 代码库 > 到底使用字符数组还是字符串常量
到底使用字符数组还是字符串常量
在c语言中有两种表示字符串的方法,一种是字符数组,一种是字符串常量
在编程过程中如果只涉及到对字符串的读取,那么字符数组和字符串常量都能够满足要求;如果有写入(修改)操作,那么只能使用字符数组,不能使用字符串常量。
字符串数组与字符串常量之间的区别:
最根本的区别是在内存中的存储区域不一样,字符数组存储在全局数据区或栈区,第二种形式的字符串存储在常量区。全局数据区和栈区的字符串(也包括其他数据)有读取和写入的权限,而常量区的字符串(也包括其他数据)只有读取权限,没有写入权限。
下面的例子演示了如何输出这种字符串:
- #include <stdio.h>
- int main(){
- char *str = "http://c.biancheng.net";
- int len = strlen(str), i;
- ?
- //直接输出字符串
- printf("%s\n", str);
- //使用*(str+i)即为字符串数组
- for(i=0; i<len; i++){
- printf("%c", *(str+i));
- }
- printf("\n");
- //使用str[i]即为字符串常量
- for(i=0; i<len; i++){
- printf("%c", str[i]);
- }
- printf("\n");
- ?
- return 0;
- }
运行结果:
http://c.biancheng.net
http://c.biancheng.net
http://c.biancheng.net
获取用户输入的字符串就是一个典型的写入操作,只能使用字符数组,不能使用字符串常量,请看下面的代码: - #include <stdio.h>
- int main(){
- char str[30];
- gets(str);
- printf("%s\n", str);
- ?
- return 0;
- }
运行结果:
C C++ Java Python JavaScript
C C++ Java Python JavaScript
到底使用字符数组还是字符串常量
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。