指针与字符串

1.字符串定义的两种方式

  • 字符数组
    char str1[] = "sjcool";
    printf("%s\n",str1);
//输出:
sjcool
  • 字符串指针指向字符串
    char *str2 = "sjcool";
    printf("%s\n",str2);
//输出:
sjcool

2.两种定义字符串的区别

  • 如果通过数组保存一个字符串,那么字符串是一个变量,可以修改;如果通过指针来指向一个字符串,那么字符串是一个常量,不能修改
  • 数组保存的字符串保存在栈中(局部变量),而通过指针指向的字符串存在常量区.
  • 生命周期:
    • 存在栈中的变量,当作用域结束后系统自动释放该变量
    • 存在常量区中的常量,不会被释放,而且多个相同的值对应的地址相同

你可能感兴趣的:(指针与字符串)