TA的每日心情 | 汗 2024-10-15 10:05 |
---|
签到天数: 372 天 [LV.9]以坛为家II
|
- /*
- 通过两种方式定义相同的字符串,比较两者的区别
- 1、数组的方式定义字符串,字符串的值保存在栈区,与基本数据类型相似,即普通的字符数组,可修改;
- 2、指针的方式定义字符串,字符串的值保存在常量区,并且做为常量保存,为只读属性,并且如果再次定义相同内容的字符串,指针指向的是同一片空间;
- 3、指针方式定义的字符串,由于在常量区,因此不能够被修改!
- */
- #include <stdio.h>
- #include <stdlib.h>
- int main() {
-
- char c[] = "yusian"; // 定义字符数组保存字符串"yusian";
-
- char s[] = "yusian"; // 定义另一个方便比较;
-
- printf("%p\n%p\n", c, s); // 打印两个字符数组的地址,发现不一致;
-
- c[2] = 'S'; // 修改字符串中的某个值;
-
- int i;
- for (i = 0; i < strlen(c); i++) {
-
- printf("%c", c[i]); //通过for循环输出字符串,值成功被修改;
-
- }
- printf("\n");
-
- char *str = "yusian"; // 定义字符串指针;
-
- char *string = "yusian"; // 定将另一个内容相同的字符中指针;
-
- printf("%p\n%p\n", str, string); // 打印两个指针向指向的地址,结果相同;
-
- //str[2] = 'S'; // 如果对上述的定义的字符串中的值进行修改,程序会崩溃;
-
- printf("%s\n", str);
-
- system ("pause");
-
- return 0;
-
- }
复制代码 输出结果:- 0022FF30
- 0022FF20
- yuSian
- 00403000
- 00403000
- yusian
- 请按任意键继续. . .
复制代码
|
|