数组

作者: 娇娇_5038 | 来源:发表于2023-12-03 13:23 被阅读0次

到目前为止我们已经学习了C语言的基本数据结构,整型,浮点型,字符型

复合数据类型,是由简单的数据类型,经过一次的数据结构封装,组成的新的数据类型,比如数据,结构体(公共体)

1.为什么需要数组

数组是就是一个数组成的组,数是一个特定的数据类型,数组是好多的数放在一起

注:数组的数据类型是单一的

1.1

eg:

#include <stdio.h>

int main(void){

int a[4];//定义一个数组

a[0]=23;//用a[0],a[1].....以此来访问数组的元素

a[1]=24;

a[2]=43;

//a[3]=55;

for(int i=0;i<4;i++){

printf("a[%d] = %d \n",i,a[i]);

}

}

2.如何定义数组

数据类型   数组名  [ 数组长度];

int a[4];

数组的数据类型是单一的,不可能一个数据组存在两种数据类型

3.如何使用数组

数组定义的时候作为整体定义,但是使用的时候需要拆开使用数组的元素,比如数组int a[4];,使用其中四个元素,分别用a[0]....a[3],其[]是数据标志,[ ]中的数字叫做数组下标(也叫index索引),下标0表示数组的第一个元素,下标1表示数组中第二个元素,以此类推,最后一个为n-1,如果下标超过n-1,会产生越界访问,结果是不可预期的

4.数据初始化

初始化(initilize,简写为init),是为了让对象有一个预定的初始化状态

4.1.变量初始化

当一个局部变量定义时没有初始化,它的值是随机的,如果没有注意会导致程序的错误,如何解决这个问题

4.1.1  int a; a=23; //用‘=’运算符给变量赋值

4.1.2. int a=23; //直接给初始化的值

注:如果变量不知道赋值什么值,可以让初始化的值为0;

4.2.数组初始化

#include <stdio.h>

int main(void){

//int a[3] ={121,28829,202002};//完全初始化

//int a[3] ={121,28829};//不完全初始化

//int a[3] ={121, ,202002};//这样定义会报错

//int a[3] ={};//不完全初始化

//a[1]=333;//

//不完全初始化的值,没有命名的值,会用0填充

int a[8] = { a[5] = 32223};//gcc特有的初始化。,可以编译但是,会出错,这样赋值会把第数组的值赋值上,以及第n+1个数赋值上s

for(int i=0;i<9;i++){

printf("a[%d] = %d \n",i,a[i]);//如果访问的元素超过数组的边界,会给一个随机数

}

}

4.2.1.完成初始化,依次赋值

4.2.2.不完全初始化,初始化的从a[0]开始依次向后赋值,不足的默认用0赋值

5.不同类型的数组

eg:

#include <stdio.h>

int main(void){

  int a[5];//整型数组

  char aChar[5]; //字符型数组

  float aFloat[5]; //浮点型数组

   double aDouble[5];//双精度数组

}

程序在运行中,需要一定的资源,这些资源包括cpu,内存条,这些资源一般由运行环境(一般指操作系统),比如我们在linux系统上,./a.out 运行时,linux系统为我们提供了运算能力和内存,程序越庞大,运行时消耗的内存就越多,占用内存的其中之一,就是我们程序中定义的变量,C语言程序中,变量的实质就是我们内存中的一个格子,这个格子就是变量名,以后访问这个内存的格子,就使用改变量名就行,这就是变量的本质。

数据类型的实质是内存中不同格子的种类,比如整型格子,双精度格子,浮点型格子,字符型格子

int (4个字节)

float(4个字节)

double(8个字节)

char(1个字节)

字节:1个字节等于8个二进制

sizeof 运算符

返回一个变量或一个数据类型的内存占用长度,以字节计算

6. 字符数组

char a[5];//定义字符数组

1.在c语言引用一个单个字符串时,立刻用单引号 '  ' 括起来比如‘a’。

2.定义数组初始化时,可以省略传统定义的[ ]的长度,c语言编译器自动推出其长度,推论长度根据初始化元素的个数。

3.字符串在C语言引用时,需要用双引号,比如"abcde"

"abcde"实际上有6个字符,第六个字符是“\0”,"\0"是C语言定义字符串时的结尾标志,所以在字符串在初始化时,会在动在字符串结尾的时候加上‘\0’标识

eg:下面的案例打印结果如下图

#include <stdio.h>

int main(void){

char s[] = "abcde";//字符串可以这样定义

//s = "ashhsk";//这样赋值会报错,这是array type,不能这么赋值(assignment to expression with array type

for(int i=0;i<6;i++){

printf("s[%d] = %c,s[%d] = %d  \n", i,s[i],i,s[i]);

}

111

相关文章

  • 数组

    数组数组数组数组数组数组数组数组数组

  • JavaScript - 5.数组<增删改查>

    数组 Array 数组 - 增 数组 - 删 / 改 数组 - 查 数组 - 自动 toString() 数组 -...

  • PHP数组使用

    数组定义 数组增、删、改 数组查询 数组排序 数组合并、分割 数组比较、去重复 数组长度 数组遍历 数组转换 其他...

  • 》》》PHP初入---(三)

    数组定义 1.索引数组:数组下标是整型的 声明数组: 访问数组: count(数组)--获取数组长度 查看数组所有...

  • JavaScript中数组的常用操作

    数组的遍历 数组的映射 数组的简化 数组的连接 获取数组的片段 数组的拷贝 查找数组 数组去重

  • JavaSE之数组

    六、数组 目录:数组概述、数组声明创建、数组使用、多维数组、Array类、稀疏数组 1.什么是数组 数组的定义:数...

  • Shell数组、关联数组

    数组 定义数组 获取数组 关联数组 定义关联数组 获取关联数组

  • 学习Java第五天

    数组是多个数据的集合 数组的语法 数组元素类型【】 数组名; 多维数组: 数组元素类型【】【】 数组名; 多维数组...

  • php基础精粹

    PHP php数组 php数组之索引数组初始化 PHP数组之索引数组赋值 PHP数组之访问索引数组内容 PHP数组...

  • C语言的惯用集

    数组部分 数组部分 清空数组a 把数据读进数组a 对数组a求和

网友评论

      本文标题:数组

      本文链接:https://www.haomeiwen.com/subject/hrvkgdtx.html