[日常] C语言中的字符数组和字符串
2023-02-18 15:41:39 时间
c语言字符数组和字符串:
1.存放字符的数组称为字符数组 char str[]
2.'\0'也被称为字符串结束标志
3.由" "包围的字符串会自动在末尾添加'\0'
4.逐个字符地给数组赋值并不会自动添加'\0'
5.局部变量初始化为零值会自动添加结束标志
6.直接使用一个指针指向字符串的形式 char* str
7.最根本的区别是在内存中的存储区域不一样,字符数组存储在全局数据区或栈区,第二种形式的字符串存储在常量区。全局数据区和栈区的字符串(也包括其他数据)有读取和写入的权限,而常量区的字符串(也包括其他数据)只有读取权限,没有写入权限。
#include <stdio.h> #include <string.h> int main(){ //char* s="hello"; //char str[]="hello"; //puts(str); char a[]="hello";//为字符数组直接赋值可以不指明数组长度 char b[3]="ab";//指定数组长度时要比实际长度多一个,会自动添加字符串结束标志 '\0' printf("%s\n",b); char str[30]={0};//数组元素初始化为'零'值,这样超出的部分会自动变成'\0' char c; int i; for(c=65,i=0; c<=90; c++,i++){ str[i] = c; } printf("%s\n", str); int len=strlen(str);//引入头文件,获取字符串的长度 printf("%d\n",len); return 0; char* d="hello";//直接使用一个指针指向字符串的形式 //最根本的区别是在内存中的存储区域不一样,字符数组存储在全局数据区或栈区,第二种形式的字符串存储在常量区。全局数据区和栈区的字符串(也包 括其他数据)有读取和写入的权限,而常量区的字符串(也包括其他数据)只有读取权限,没有写入权限。 }
相关文章
- 利用php脚本+redis,生成CSV测试文件,重复率为20%
- [MySQL]索引
- [MySQL]brew 安装 配置 操作 mysql(中文问题)
- [MySQl]MySQL忘记密码
- [MySQL]增加用户 授权 远程登录
- [编程题目]泥塑课
- How can I learn to program?
- 学渣的心酸(求职篇)
- 时间复杂度问题
- 测试Flask应用_学习笔记
- Flask模板_学习笔记
- 初学Flask(1)
- 今天安装了麒麟系统
- 看球时的随笔——“如何掌握新的知识”
- str()和repre()的区别
- 关于抛出异常和捕获异常
- 博客的第一天
- notepad++快捷键大全
- 软件测试|Monkey基本参数介绍
- 使用 Redis 实现延时队列