
数组 - 字符数组
发布日期:2021-05-07 10:11:48
浏览次数:15
分类:精选文章
本文共 1280 字,大约阅读时间需要 4 分钟。
一、数组:数组是一组相同类型的元素
int main0501(){ //数据类型 + 数组名[元素个数] = { 值 } - 如果数组初始化可以不指定数组元素个数 int arr1[10] = { 0 }; int arr2[] = { 1,3,5,7,9 }; //不完全初始化 - 剩下的两个空间会被默认初始化为0 int arr3[5] = { 1,3,5 }; //c99标准中引用一个概念:变长数组 //支持数组创建的时候,用变量指定大小,但是这个数组不能被初始化 int n = 10; //int arr[n] = { 0 };//err - 由此可见VS2017是不支持c99变长数组的 return 0;}
二、字符串就是一串字符 - 用双引号括起来的一串字符 “hello bit”
int main0502(){ //注:字符串的结束标志是一个\0的转义字符。在计算字符串长度的时候\0是结束标志,不算作字符串内容 //三、字符数组 - 字符串使用字符数组存储 char arr[] = "hello";//字符串在结尾的位置隐藏了一个\0的字符 return 0;}
三、易混点
int main0503(){ char arr1[] = "abc"; char arr2[] = { 'a','b','c' }; char arr3[] = { 'a','b','c','\0' };//这样就等同于arr1 //arr1、arr2、arr3的输出结果是什么? printf("%s\n", arr1); printf("%s\n", arr2); printf("%s\n", arr3); //结果 arr1 - abc // arr2 - abc烫烫烫烫蘟bc // arr3 - abc //事实上在内存中arr1 - a b c \0 // arr2 - a b c // arr3 - a b c //之前有提到\0是字符串的结束标志:在打印arr1时遇到\0时停止打印;而arr2没有\0,则会继续往下找\0,所以输出了一些乱码 //arr1/arr2两种类型字符串的大小及长度 //sizeof - 1个字符=1个字节 printf("%d\n", sizeof(arr1));//4 printf("%d\n", sizeof(arr2));//3 //sizeof在计算字符串元素所占内存大小时是包括\0的,且不是以\0为结束标志的,而是以元素个数为标志 //strlen - 计算字符串长度 - 头文件string.h printf("%d\n", strlen(arr1));//3 printf("%d\n", strlen(arr2));//15 //strlen在计算字符串长度时是以\0为结束标志的,且不包括\0;而arr2没有\0,所以它的结果是一个随机数 return 0;}
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年03月30日 08时38分09秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
程序员应该知道的97件事
2019-03-05
我编程,我快乐—程序员职业规划之道
2019-03-05
create-react-app路由的实现原理
2019-03-05
PSI值
2019-03-05
海思Hi3531DV100开发环境搭建
2019-03-05
JavaScript上传下载文件
2019-03-05
Linux驱动开发之PCIe Host驱动
2019-03-05
Vue.js Element Basic组件使用
2019-03-05
android 头像选择,裁剪全套解决方案,你值得拥有!
2019-03-05
MapReduce
2019-03-05
springboot swagger2
2019-03-05
shell(十)case的几个典型应用
2019-03-05
Linux环境变量配置错误导致命令不能使用(杂谈)
2019-03-05
openstack安装(六)镜像glance服务安装
2019-03-05
openstack安装(九)网络服务的安装--控制节点
2019-03-05
shell编程(六)语言编码规范之(变量)
2019-03-05
vim杂谈(三)之配色方案
2019-03-05
vim杂谈(五)之vim不加载~/.vimrc
2019-03-05
Linux杂谈之终端快捷键
2019-03-05
vimscript学习笔记(二)预备知识
2019-03-05