首页 > 其他分享 >(C语言)数组

(C语言)数组

时间:2024-10-30 21:45:45浏览次数:3  
标签:初始化 arr int 元素 C语言 数组 大小

目录

一维数组

1>.   定义

2>.  数组的下标

3>.  数组的初始化

4>.  计算数组的大小

       1)strlen 

       2)sizeof

二维数组

1>.  定义

2>.  初始化

       1)只有一个{ }

       2)多个{ }

变长数组

数组

定义:为了存放多个相同类型的元素,创建了数组;数组是一个相同类型元素的集合;

要求:1>.数组可以存放一个或多个元素,但是其元素个数不能为0

           2>.多个数据类型是相同的

数组可以分为一维数组和多维数组(二维数组用的较多)

一维数组

1>.   定义

形式:type arr_name[常数值],type表示数组中元素的种类,arr_name表示元素的名称(自定义),[  ]中的参数值表示的是数组的大小;

int arr[10]={0};表示arr数组中存放了10个int类型的数据,并且初始化为0;注意数组元素的类型为int,但是数组的类型是int[10];

2>.  数组的下标

数组元素的下标是从0开始的,依次递增1;

int arr[10]的[ ]表示的是数组的元素的个数;printf("%d",arr[0])中的[ ]表示访问数组中下标为0的元素;

3>.  数组的初始化

当对数组进行初始化的时候,数组大小是可以忽略的,即int arr[ ]={1,2,3,4,5,6}的[ ]中常量值是可以忽略的;此时编译器会根据数组初始化的内容,自动计算数组元素的大小;

注意:数组名是地址,数组的元素不是地址;运用循环输入数据储存在数组中的时候,要用&并且指明数组元素的下标是多少;即scanf("%d",&arr[i]);

数组在内存中是连续储存的,随着数组元素下标的增长,地址也是由小到大变化

4>.  计算数组的大小

1)strlen

 在计算数组的大小的时候,用strlen来计算字符串长度(计算的时候,遇到\0结束,不会记入\0),strlen的返回值类型是size_t,头文件是<string.h>

2)sizeof

sizeof可以用来求数组的长度,但是单位是bite;所以如果要求数组元素的个数,可以用(数组总的大小,单位bite)/(数组中一个元素的大小,单位也是bite)

注意实际上也可以用该方法计算字符串的元素个数,但是用该方法计算的结果会包含\0

二维数组

1>.  定义

type arr[参数量1][参数量2],其中参数量1表示行数,参数量2表示列数(实质上,二维数组在内存中的储存也是连续的,行和列只是为了方便理解),二维数组的行可以省略,列不能省略

2>.  初始化

1)只有一个{ }

初始化按顺序,先初始化一行,一行不够再进行下一行

2)多个{ }

{ }内的数据表示的是在同一行

变长数组

在c99标准之前,数组在创建的时候,数组的大小的在指定必须是常量,arr[10],[ ]内必须是常量

在c99之后,C语言引入了变长数组的概念,使得数组的大小可以用变量来决定。但是在VS 2022中是不支持变长数组的,gcc编译器(dev c++,小熊猫c++)是支持的。arr[n],n是定义的变量,注意:变长数组不是数组的大小可以改变,数组的大小是确定的,但是可以有变量决定。

 

标签:初始化,arr,int,元素,C语言,数组,大小
From: https://blog.csdn.net/2401_87944878/article/details/143374772

相关文章

  • 明解c语言第四章while语句练习4-6和练习4-7
    就在前几天我学习了一个do语句,接着这几天学习了一个while语句,看完书来写练习4-6和练习4-7感觉一头雾水,可能是今天中午没睡觉的缘故我脑子里空空的,于是对于练习4-6我求助了ai练习4-6:编写一段程序,按照升序显示出小于输入值的所有真偶数ai是这样写的//编写一段程序,按照升序显示......
  • C语言基础
    ifelseifelse后面可以没有花括号,没有的话只能控制一条语句(遇到的第一个分号)可以单独使用if,if后面可以没有else,但是else前面必须有if练习:题目:说出以下代码的执行结果intmain(){inta=10;printf("0");if(a>10);printf("1");elseprintf("4");......
  • C语言基础
    1.linux命令:1.1界面调节:终端放大:ctrl+shift+=缩小:ctrl+-打开:点击ctrl+alt+t:在家目录下打开ctrl+shift+n:在当前路径下新开关闭:点击exitctrl+d清屏幕:ctrl+L终止:ctrl+c1.2提示文字:hq@ubuntu:~$用户名间隔符主机名间隔符当前路径间隔/输入提......
  • 记录串口电脑往下发,没有写进数组的问题
    1voidHAL_UART_RxCpltCallback(UART_HandleTypeDef*huart)2{3/*Preventunusedargument(s)compilationwarning*/4UNUSED(huart);5if(RxCnt>=10)6{8RxCnt=0;10//将数组指向的地方的前sizeof内存用0X00替换,将数组初始化......
  • C语言的循环语句
    C语言中提供了三种循环语句:while、for、do....whille下面我们对这三种语句进行学习1:while循环1.1:if和while的区别    语法:while(表达式)              语句    乍一看,和前面分支语句中学的if语句是不是很相似下面我们通过代码......
  • 未排序数组的树层去重
    491.递增子序列reference/*未排序+树层去重之前在进行树层去重时,我们都是先对元素排序,这样如果树层中的元素重复,它们的位置一定是相邻的,因此我们可以通过!st[i-1]来判断树层元素是否重复但现在我们不能对元素进行排序,该如何去重呢?其实也很简单,对于树中的每一层,我们只需......
  • 《贪婪算法实战:寻找最短无序连续子数组的深度解析与实现》
    ......
  • C语言判断单链表是否相交
    ////CreatedbyAdministratoron2024/10/29.//#ifndefLINK_H#defineLINK_H/***链表的结构体*/typedefstructLink{intelement;structLink*next;}link;#endif//LINK_H////判断单链表是否相交//CreatedbyAdministratoron2024/10/30......
  • JavaScript 实现对 JSON 对象数组数据进行分页处理
    JavaScript实现对JSON对象数组数据进行分页处理在前端JavaScript中对JSON对象数组进行分页,可以通过以下方式实现:分页函数示例代码假设有一组JSON对象数据,比如一组用户信息:constdata=[{id:1,name:"Alice"},{id:2,name:"Bob"},{id:3,name:"......
  • 实验3_C语言函数应用编程
    task1:输入分数,返回等级有问题。当输入高于E等级对应的分数时,函数返回值将是从该等级到E等级全部等级,如输入9将返回BCDE。 #include<stdio.h>charscore_to_grade(intscore);//函数声明intmain(){intscore;chargrade;while(scanf("%d",&score)!......