1.字符串定义的两种方式
- 字符数组
char str1[] = "sjcool";
printf("%s\n",str1);
//输出:
sjcool
- 字符串指针指向字符串
char *str2 = "sjcool";
printf("%s\n",str2);
//输出:
sjcool
2.两种定义字符串的区别
- 如果通过数组保存一个字符串,那么字符串是一个变量,可以修改;如果通过指针来指向一个字符串,那么字符串是一个常量,不能修改
- 数组保存的字符串保存在栈中(局部变量),而通过指针指向的字符串存在常量区.
- 生命周期:
- 存在栈中的变量,当作用域结束后系统自动释放该变量
- 存在常量区中的常量,不会被释放,而且多个相同的值对应的地址相同