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

C语言 学习 数组(一维数组,多维数组,字符数组,字符串) 2025年6月8日09:21:39

一维数组

int arr[5];//声明整型数组长度5
int arr[5]={1,2,3,4,5};//静态初始化//动态(运行时赋值)初始化
for(int i=0;i<5;i++)
{
arr[i]=i+1; 
}//运行过程
arr[0] = 1
arr[1] = 2
arr[2] = 3
arr[3] = 4
arr[4] = 5
  • 数组下标不能越界(否则行为未定义)
  • 数组名 arr 可以看作指向首元素的指针

多维数组

int arr[行][列];//静态初始化
int arr[2][3]={
{1,2,3},
{4,5,6}
};//动态初始化
for(int x=0;x<2;x++)
{
for(int y=0;y<3;y++)
{
arr[x][y]=x*3+y+1;
}}
//运行效果
第一层循环:x = 0(第一行)
y = 0: arr[0][0] = 0*3 + 0 + 1 = 1
y = 1: arr[0][1] = 0*3 + 1 + 1 = 2
y = 2: arr[0][2] = 0*3 + 2 + 1 = 3
第一层循环:x = 1(第二行)
y = 0: arr[1][0] = 1*3 + 0 + 1 = 4
y = 1: arr[1][1] = 1*3 + 1 + 1 = 5
y = 2: arr[1][2] = 1*3 + 2 + 1 = 6
  • 多维数组本质上是一维数组的嵌套
  • 不推荐使用超过三维以上的数组(可读性差)

三维数组

int arr[2][3][4];
int arr[二维数组数量][行][列];int arr[2][3][4]=
{{
{1,2,3,4},{5,6,7,8},
{9,10,11,12}},{{1,2,3,4},{5,6,7,8},
{9,10,11,12}}};Layer 0:1   2   3   45   6   7   89  10  11  12Layer 1:1   2   3   45   6   7   89  10  11  12

 

字符数组

char arr[5];
char arr[5]={'H', 'e', 'l', 'l', 'o'}; //静态初始化
//自动初始化
char str[6]="Hello";// 自动在尾部添加'\0'
//等同于:
char str[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
  • 字符数组每个元素占 1 字节(sizeof(char) == 1) 

字符串

C语言中没有专门的字符串类型,而是用 以 \0 结尾的字符数组 表示字符串

必须有'\0'结尾才算!!!!  字符数组不一定是 字符串

使用标准库函数需包含头文件 <string.h>
字符串操作函数:
strlen(str):获取长度
strcpy(dest, src):复制字符串
strcat(dest, src):连接字符串
strcmp(str1, str2):比较字符串

 

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

相关文章:

  • Σ∆ 数字滤波
  • Linux 用户层 和 内核层锁的实现
  • 嵌入式面试提纲
  • debian12拒绝海外ip连接
  • PyCharm和VS Code哪个更适合初学者
  • idea 启动jar程序并调试
  • 机器学习模型选择指南:从问题到解决方案
  • 华为开源自研AI框架昇思MindSpore应用案例:ICT实现图像修复
  • 前端现行架构浅析
  • 主流嵌入式Shell工具性能对比
  • Python计算字符串距离算法库textdistance详解与应用实战
  • Python_day48随机函数与广播机制
  • Framework开发之IMS逻辑浅析1--关键线程及作用
  • Spring AOP代理对象生成原理
  • 在Unity中Update和Fixedupdate有什么区别
  • 【读论文】OpenAI o3与o4系统模型技术报告解读
  • 数据源指的是哪里的数据,磁盘中还是内存中
  • 调试快捷键 pycharm vscode
  • 掌握Git核心:版本控制、分支管理与远程操作
  • 联邦学习与边缘计算结合
  • 一种停车场自动停车导航器的设计(论文+源码)
  • grpc和http的区别
  • 自动驾驶科普(百度Apollo)学习笔记
  • 【AI智能体】Dify 从部署到使用操作详解
  • 解决limit 1000000加载慢的问题
  • 【每天学点 Go 知识】Go 基础知识 + 基本数据类型快速入门
  • 【大模型RAG】Docker 一键部署 Milvus 完整攻略
  • 基于规则的自然语言处理
  • 基于多维视角的大模型提升认知医疗过程层次激励编程分析
  • 【数据结构】顺序表和链表详解(下)