当前位置: 首页 > news >正文

一维字符数组.二维整形数组

C语言一维字符数组 & 二维整型数组

今天重点学习一维字符数组和二维整型数组,调试字符串拼接踩了一堆坑,把知识点整理记录下来,夯实C语言基础✨

🔹一维字符数组(字符串)

C语言本身没有string字符串类型,字符串本质就是以 \0 结束的一维char字符数组, \0 是字符串结束标志,系统靠它判断字符串到哪里终止,没有结束符输出就会出现随机乱码。

1.初始化两种写法

char str[20] = {"hello"};

char str[20] = {'h','e','l','l','o','\0'};

双引号初始化会自动在末尾补 \0 ;大括号单个字符赋值,必须手动加上 \0 。

2.输入输出

使用 %s 可以直接对数组整体读写,不需要循环逐个字符。

⚠gets函数已经被废弃,尽量使用fgets;fgets有大坑:会把按下回车产生的 \n 换行符一并读到数组内部。做字符串拼接、字符串比较的时候,换行符会藏在字符串中间,导致代码逻辑看起来完全失效,需要手动把 \n 替换成 \0 。

3.手写字符串拼接(不使用strcat库函数)

逻辑:先用while循环遍历,找到第一个字符串 \0 所在下标(字符串末尾),从这个位置开始,把第二个数组的字符逐个复制过来,全部复制完成后,一定要手动追加 \0 。

自己写代码的时候犯过错:直接从数组下标0开始复制,把原本的字符串全部覆盖,拼接直接失败,调试很久才定位到问题。

🔹二维整型数组

二维整型数组可以类比一张表格, int arr[行][列] ,本质是数组里面存放一维数组。

1.初始化方式

①全部赋值: int arr[3][2]={{1,2},{3,4},{5,6}};

②简写赋值: int arr[3][2]={1,2,3,4,5,6};

③部分初始化:没有赋值的元素系统自动默认补0。

行下标可以省略,列下标绝对不能省略。

2.元素访问

格式: arr[i][j] ,i代表行下标,j代表列下标;下标全部从0开始计数。

比如3行2列数组,行取值0~2,列取值0~1,访问超出范围下标,数组越界,程序会异常。

3.遍历输出

必须两层循环嵌套:外层循环控制行,内层循环控制列。

plaintext

for(int i=0;i<3;i++) //遍历每一行

{

for(int j=0;j<2;j++) //遍历当前行每一列

{

printf("%d ",arr[i][j]);

}

printf("\n");

}

💡今日踩坑总结

1.字符数组千万留意 \0 结束符,漏掉直接乱码

2.fgets读取回车换行符是隐藏陷阱

3.字符串拼接不能从数组开头拷贝,要跳到原有字符串末尾

4.二维数组列下标不可省略,下标从0开始,警惕数组越界

数组是C语言非常核心的部分,很多底层操作都离不开,还要多加练习

http://www.jsqmd.com/news/1285149/

相关文章:

  • C++核心特性解析:命名空间、缺省参数与函数重载实战指南
  • Arduino HC-05蓝牙模块完整配置与通信避坑指南
  • 用Arduino打造复古BASIC计算机:从模块集成到解释器实现
  • 软件设计师备考:从知识体系构建到实战应用的全攻略
  • Kali Linux本地靶场搭建指南:从零部署vulntarget-a渗透测试环境
  • Bluno Beetle开发板:可穿戴与物联网原型设计的低功耗蓝牙解决方案
  • 2026年7月金刚橡胶屋顶料/济南金刚橡胶屋顶行业优选推荐_济南鸿途保温材料有限公司 - 行业平台推荐
  • RePKG:解锁Wallpaper Engine资源宝库的专业级逆向工程工具
  • [问题排查]MATLAB imread函数读取文件速度过慢问题
  • MATLAB地图绘制全攻略:从数据导入到专题制图
  • C/C++编程中size_t的正确使用:避免内存越界与提升代码健壮性
  • 程序员必备Prompt工程实战指南
  • AI辅助论文写作工具实测与学术规范平衡指南
  • Unity开发中ArgumentNullException: _unity_self异常的深度解析与解决方案
  • 嵌入式Linux Qt交叉编译实战:从环境搭建到开发板部署全流程
  • Hard Macro的Float Pin设错了,skew balance全白干
  • 迪文串口屏变量显示与MCU通信协议详解及实战应用
  • 雨天显影艺术:从亲水涂层到遇水变色材料的创作指南
  • 基于STM32的智能风扇系统:从环境感知到PID温控的嵌入式实战
  • 深入理解补码:C/C++底层编程与面试必备的核心基础
  • 2026实盘交易数据底座:海量时序数据存储与AI推理延迟优化实践
  • 高性价比的并联恒功率伴热带供应商:甄选 - 品牌推广大师
  • TCP三次握手与四次挥手详解:从Wireshark抓包到实战排障
  • 月球早期磁场揭秘:从行星发电机原理到35亿年前超级磁场的科学发现
  • Java —— Java语言概述
  • Simulink模型自动生成Verilog代码:从算法到硬件的设计流程革命
  • 2026年7月武汉加厚不锈钢烟囱/武汉不锈钢烟囱管厂家推荐合集_武汉江宁环保科技有限公司 - 品牌宣传支持者
  • 十一假期玩转Arduino:从氛围灯到物联网的4个创意项目实践
  • 平衡单车串级PID控制:从姿态解算到参数整定实战指南
  • Unity项目编译与APK导出全流程详解:从环境配置到发布优化