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

嵌入式C语言数组:数组/字符数组

1. 数组
1.1 一维数组

数组是一串连续的地址;

数组名是地址常量,代表数组的起始地址

sizeof(数组名) 可得出数组的总内存空间;

 C 语言对数组不做越界检查,使用时应注意;

 数组不初始化,元素随机;

 1.2 二维数组

二维数组的定义:可以省略行,不可以省略列

在内存中的存储是连续的,一维的,按行优先的

两维数组可以看成由多个一维数组组成

二维数组行号相当于一维数组名

二维数组初始化:

 2. 字符数组

字符数组是数据类型为字符的数组

只不过其使用频率较高,需要重点学习

2.1 字符数组初始化

字符数组分为一维数组与二维数组;

2.1.1 一维数组逐个字符初始化

 整型数组的默认值:0

 字符数组的默认值:\0

指针部分默认值:null

他们三个代表的都是 0 ;

 2.1.2 一维数组字符串常量初始化

 不同方式的打印:

注意

只有真正是字符串的时候,才用 %s 打印输出;

在 linux 与 vs2022 环境下分别尝试,出现了不同的结果,最好使用 putchar 打印字符数组;

以下是不同输出格式打印输出字符数组:

 C 语言中没有字符串变量,用字符数组处理字符串;

注意字符串结束标志:\0

"hello"共五个字符,长度为五,但占六个内存;

该图(字符串二维数组)更能详细地表明字符串的内存存储情况;

2.1.3 二维数组初始化

按照常规思路,二维数组可以这样初始化;

对于二维字符数组,一般这样初始化;

遍历:

        方法一:常规思想遍历

         也可以用其他方法:

2.1.4 题目

控制台输入字符串并逆序打印输出;

注意:gets() 输出形式为字符串默认追加一个 \0,且可能会有溢出,占据相邻存储空间;

2.2 字符串函数

字符串函数被封装在头文件 #include<string.h> 中

常用的字符串处理函数函数有:strlen,strcpy,strcat,strcmp

2.2.1 求字符串长度 strlen

返回字符串的实际/有效长度,不包括 “\0”

以下代码测试中,“\0”后面的字符为无效字符,不会算作字符串的实际长度

此外,sizeof() 计算的是字符串所占的存储空间大小,不同于strlen() 计算的实际长度

以下代码是对字符串求长度,注意字符串默认以“ \0 ”结尾,因此两函数值不同;

2.2.2 字符串拷贝函数 strcpy

格式:strcpy(字符数组1 ,字符串 2)

将字符串 2 拷贝到字符数组 1 中去,并返回字符数组 1 的首地址

注意:字符数组 1 必须足够大;拷贝时连同 ’ \0‘ 一同拷贝

http://www.xdnf.cn/news/1072495.html

相关文章:

  • NV046NV060美光固态闪存NV061NV063
  • ABP VNext + 多数据库混合:SQL Server+PostgreSQL+MySQL
  • Webpack 核心与基础使用
  • 设计模式精讲 Day 17:中介者模式(Mediator Pattern)
  • 微软人工智能证书AI-102 | 如何快速通过?
  • 机器学习框架(1)
  • 【Elasticsearch】全文检索 组合检索
  • 基于MFC的遥感图像匹配程序设计
  • ML与DL的本质区别是什么?(考研复试版)
  • FPGA产品
  • 非阻塞 IO
  • Qt:QCustomPlot库的QCPAxis
  • 笔记07:网表的输出与导入
  • 概述-3-数据模型
  • Qt 收藏夹书签管理
  • cocos creator 3.8 - 精品源码 - 挪车超人(挪车消消乐)
  • ADVANCED INTELLIGENT SYSTEMS 东京大学仿生人类手指机器人,实现“皮肤”补水!
  • 【AI智能体】Dify 核心组件从使用到实战操作详解
  • web网页开发,在线%健身俱乐部管理%系统demo,基于vs2022,vscode,html,css,vue,c#,net,aspnet,api,mysql
  • 【面板数据】省级电商指数与地级市电子商务交易额数据集(1990-2022年)
  • 车载诊断架构 --- 非易失性存储器(NVM)相关设置项
  • 学习使用dotnet-dump工具分析.net内存转储文件(1)
  • 提示词工程(Prompt Engineering)
  • 校验和(checksum)不匹配
  • SRS WebRTC 入门
  • 基于LQR控制器的六自由度四旋翼无人机模型simulink建模与仿真
  • java nio 所有影响 plc 的方法一览表
  • 如何让ChatGPT模仿人类写作,降低AIGC率?
  • 我的世界模组开发进阶教程——机械动力的数据生成(2)
  • 动态规划---子序列专题