"字符数组与字符串的区别及C程序设计简介"
字符串与字符数组的区别是字符串以\0结尾,而字符数组不一定。字符串的长度是字符的个数加上\0,而字符数组的长度只是字符的个数。在存储空间上,字符串需要额外的一个字节来存储\0,而字符数组不需要。字符串可以通过赋值运算符“=”进行赋值,而字符数组只能通过一个一个元素的赋值或者strcpy函数进行赋值。对于字符数组,可以通过修改数组中的元素来修改字符串中的字符,但是不能通过更改字符数组中的某个元素来修改字符串的长度。而字符串是不允许修改的,只能通过重新赋值来改变其内容。通过下面的例子可以更好地理解字符串与字符数组的区别: ```C #include<stdio.h> int main() { char a[] = {'C', 'H', 'I', 'N', 'A'}; char b[] = "CHINA"; char c[6]; printf("a: %s\n", a); printf("b: %s\n", b); // 修改字符数组a中的某个元素 a[0] = 'Z'; // 修改字符数组a的长度 a[5] = '!'; // 修改字符串b中的某个元素 // b[0] = 'Z'; // 不允许修改 // 修改字符串b的长度 // b[5] = '!'; // 不允许修改 printf("a: %s\n", a); printf("b: %s\n", b); // 字符数组赋值给字符串 strcpy(c, a); printf("c: %s\n", c); return 0; } ``` 在上面的代码中,首先定义了一个字符数组a和字符串b,并进行了赋值。然后通过修改字符数组a中的某个元素来修改字符串a中的字符,并通过修改字符数组a的长度来修改字符串a的长度。接着通过修改字符串b中的某个元素和长度来说明字符串是不允许修改的。最后通过strcpy函数将字符数组a的内容赋值给字符数组c,这样可以看到字符数组赋值给字符串的效果。 通过运行上面的代码可以得到以下输出结果: ```bash a: CHINA b: CHINA a: ZHIN! b: CHINA c: ZHIN! ``` 可以看到字符数组a的内容在修改之后发生了变化,而字符串b的内容没有变化。字符数组c中存储的是字符数组a的内容。这就是字符数组和字符串的区别。
![](https://csdnimg.cn/release/download_crawler_static/17147752/bg10.jpg)
![](https://csdnimg.cn/release/download_crawler_static/17147752/bg11.jpg)
![](https://csdnimg.cn/release/download_crawler_static/17147752/bg12.jpg)
![](https://csdnimg.cn/release/download_crawler_static/17147752/bg13.jpg)
![](https://csdnimg.cn/release/download_crawler_static/17147752/bg14.jpg)
剩余929页未读,继续阅读
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://profile-avatar.csdnimg.cn/f314b1a81b97400f839c4456aee96e83_weixin_42193786.jpg!1)
- 粉丝: 23
- 资源: 2万+
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Vue实现iOS原生Picker组件:详细解析与实现思路
- Arduino蓝牙小车:参数调试与功能控制
- 百度Java面试精华:200页精选资源涵盖核心知识点
- Swift使用CoreData填坑指南:CoreData在Swift 3.0的变化
- 微距离无线充电器创新设计及其实验探索
- MTK Android平台开发全攻略:44步详解流程
- RecyclerView全面解析:替代ListView的新选择
- Android开发:自动适配中英文键盘解决方案
- Android调用WebService接口教程
- Android开发:BitmapUtil图片处理全解析与实例
- Android多线程断点续传实现详解
- PCA算法在人脸识别会议签到系统中的应用
- EventBus 3.0:Android事件总线详解与实战应用
- Android FileUtil:全面解析文件操作实用技巧与实例
- RecyclerView添加头部和尾部实战教程
- Android实现微博滑动固定顶部栏实战与优化
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)