在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
时间: 2024-10-15 13:40:10