数组的c语言代码带注释,C语言之数组

1.一维数组

特点:同一数组中的所有元素都属于同种数据类型,数组元素用数组名和相应的下标来确定。

方法:一个数组元素其实就是一个变量,可以称为带下标的变量

1.一维数组的定义和引用(只有一个下标)

1.定义格式:

类型名 数组名【常量表达式】;

如:float s【25】;float s【5*5】;int a【10】;char s1【30】;

注意:1.数组名属于客户定义标识符。要遵守标识符命名规则:错误例子:int for【10】

2.定义一维数组时数组名后必需用一个【】将变量表达式括起来,常量表达式的值表示所定义数组共有多少个元素(数组长度或者数组的大小)。

如:下面定义为非法 int a(10);int a{10}

3.定义数组时方括号中的表达式不能含有变量。另外表达式的值必需要大于零且为正整数

4.c中每个数组在内存中分配空间是连续分配的

2.一维数组元素的引用格式:

数组名【下标】

3.一维数组的初始化

格式:类型名 数组名【常量表达式】={初值1,....};

注意: 1.多则出错,少则补零

2.定义赋初值的个数等于数组长度,则数组长度可以省略

int a【】={1,2,3,4}

3.一个初值也不给则是随机值:int a【5】;

4.只能在定义数组的同时用{}给数组赋初值

2.二维数组

1.二维数组的定义和引用(有两个下标)

1.定义格式:

类型名 数组名【常量表达式1】【常量表达式2】;

如:float s【25】【2】;float s【55】【34】;int a【10】【10】;char s1【30】【2】;

注意:1.两个【】分别表示行列数

2.在内存中二维数组元素的存放也是连续的,先行后列准则

2.引用:数组名【行】【列】

注意:不能整体引用,只能引用其中的元素

引用时必需有两个下标

3.初始化

将初始值依序放在{}中,与一维数组初始化格式相同

例:int a【2】【3】={1,2,3,4,5,6};

方法二:定义二维数组同时按行初始化,每一行初值均用{}括起,采用嵌套的{}格式,例如:int【2】【3】={{1,2,3},{4,5,6}};

注意:定义二维数组的同时给数组初始化,则可以省略行数,但列数不能省略

3.字符数组

c语言中没有字符串变量,那么如何存储?

方法一:字符数组存放

方法二:字符型指针变量

1.字符数组的初始化

char a【】={'a','b','c','d','e'};

2.字符串

由于字符串最后都有一个字符串结束符'\0',所以用字符数组存放字符串时肯定要有一个元素存放结束符'\0'

(1)字符串常量后有一个’\0'。如:“abcd”由5个字符组成

“”等价于”\0”,是一个空字符串。

(2)用字符串给一字符数组进行初始化有三种情况:方法1:char a[]="abcd";同 char a[]={'a','b','c','d'};?方法2:char a[]={"abcd"};方法3:char a[]={'a','b','c2','d';10};

注意:c语言编译过程中遇到双引号才会加\0,遇到单引号不会

char a【】={'a','b','c','d'};=======》不等同于char a【】="abcd";

前者{}不能省略,且数组长度为4,后者长度为5由于有字符串结束字符\0

char a【】={'a','b','c','d','\0'}等同于char a【】="abcd";

数组的使用

如何使用一维数组

如何使用二维数组

如何使用字符串

1.字符串存储(赋值)四种方法

1.scanf();键盘输入char a【10】;scanf(“%s”,a);//数组名本身就是地址scanf(“%s”,a);非法注意:用%s格式输入时,遇到空格符或者回车符则自动结束输入scanf(“%s,%s”,a,b);不能正确读取数据,中间不能加任何字符

printf();输出

如:char s[10];scanf("%s",s);//输入: ab cdprintf("%s",s);//注意输出时则从当前地址开始直到遇到结束字符为止输出:ab

2.gets()键盘输入

(1)字符串存储(赋值)四种方法

|方法2:gets()键盘输入格式:#includegets(字符数组)

功能:读取一个字符串赋给字符数组注:

(1)用该函数输入字符时,只有遇到回车符系统才结束读取字符

如:char strl[10];gets(strl);.

输入:ab cd

strl:ab cd

(2)不管是用%s还是gets()在输入时均不需要输入双引号,用了双引号则双引号也作为字符串的有效字符。

方法2:puts()输出格式:#includeputs(字符数组或者字符串常量)

功能:在屏幕上输出字符数组中的字符。

注:用该函数输出与用%s格式输出一样,只是‘0’转成’n’输出。

如puts(“abc”);puts(“defg”);输出结果:abc defg printf(“abc”);printf(“defe”);

方法3:字符串初始化

char s[]=“abcd”;

char s[]={“abcd};

char s[]={"a',b','c2,'d',10'};

2.字符串函数(解决)4个函数

第1个函数:strcat()格式:#includestrcat(字符数组1,字符数组2)功能:“连接”如:char a[18]="jack”;char b[10]="zhy";strcat(a,b);a=>"jackzhy”b=>"zhy”

注意:从第一个串的'\0'开始连入

第二个串'\0'也连入

返回字符数组的首地址

8747b6ffce5f73ef12258441b66634bc.pngstrcpy(字符数组1,字符数组2)

注意:从第一个字符开始替换

bca77b7ac943c82822e29bc2e29701c9.pngstrcmp(字符数组1,字符数组2)的比较

8dfdaf8a6e7e445d9892eae5b93cfd8c.pngimage.png

注意:图片上例题一strlen(a)=7

例题二strlen(a)=5=====》首先读入abc,遇到\转义字符最多结合三位(八进制)但不能出现8所以第四个字符是\01继续读入8,所以长度为5

假如是:char a【】=“abc\08\0”;那么它的长度是3,由于读入结束符则中止

后期整理指针的时候会深入解释这些函数哦~~~

3.例题分析

4d97ec28fbb3935288b52d6a3e997cd0.pngimage.png

输出结果为:

12345

EFG

例2:

461544dec353c5c508b6a9028a174609.pngimage.png

输出结果:

12345

12345

例3

522ac83ea4a0d87f45490acd58dba739.png上述代码错误

上述代码错误!

起因:pa是一维数组的名字 ,是所有元素连续占用存储空间的首地址,这个地址一旦给出,永远不能改变,是一个地址常量,因而常量不能放在赋值号(=)左边

例4

5b4db165018fc2e087dc6089c2bf2afd.pngimage.png

输出结果为:

ABCDEFGXYZ

ABCDEFGXYZ

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值