C语言||字符数组

字符数组和字符串常量

C语言有两种表示字符串的方法,一种是字符型数组,一种是字符串常量。
相同点

  1. 都能用%s来输出字符串
  2. 都可以用*或[]得到单个字符

不同点

它们在内存中存储位置不同,导致字符数组可以读取和修改,而字符串常量只能读取,不能修改
最根本的区别在于字符数组存放在全局数据区和栈区,而字符串常量存储在常量区。全局数据区和栈区有读取和写入的权限,常量区只有读取的权限,没有修改权限。

选取标准:

  1. 如果编程中涉及对数据的读取,那么两者都可以用
  2. 涉及到修改数据,只能用字符数组
  3. 获取用户输入的字符,只能用字符数组
#include<stdio.h>
#include<string.h>

int main()
{
  char*str1="Hello World!";     //使用字符数组
  char*str;                     //另一种使用字符数组的方式
  str="Hello World!";
  char str2[]="Hello World!";   //字符串常量
  int length=string(str2);
  //输出字符串的方式
  for(i=0;i<length;i++)
  {
    printf("%c",*(str+i));
  }
  for(i=0;i<length;i++)
  {
   printf("%c",str[i]);
  }
  printf("%s",str1);
  return 0;
}



猜你喜欢

转载自blog.csdn.net/weixin_44594976/article/details/88723617