C笔记:数组

文章详细介绍了数组的定义、初始化、引用数组元素的方法,包括一维数组、二维数组的使用。同时讲解了字符数组的赋值、字符串长度的计算以及字符串结束标志的重要性。还提到了如何通过sizeof运算符求数组的大小以及使用strlen函数获取字符串长度。
摘要由CSDN通过智能技术生成

目录

一. 定义

1.初始化

2.引用数组元素

3.给数组赋值

4.求数组的大小

二. 二维数组

1.定义

2.初始化(赋值)

三. 字符数组

1.赋值

2.字符串长度

3.字符串结束标志


一. 定义

数组:数据类型相同,内存连续的集合。

数组的定义格式:类型说明符  数组名[数组的大小]

  •类型说明符:任一种数据类型或构造数据类型;

  •数组名:合法的标识符,满足规则和规范;

  •数组的大小:是一个整型常量或一个字符;

1.初始化

数组的初始化数据类型 数组={存储的数据}   注:数据之间用 隔开;

2.引用数组元素

数组中数据的方位(数组元素):通过下标从0开始)来访问,下标可为常量、表达式、变量等,表示方法:数组名[数组下标] 

数据占内存,系统会随机分配内存地址编号,这和下标是不同的。输出地址格式要用%p。地址具体怎么表示要看数据内存的大小,类型不同,内存大小也不同。比如,int类型的数据要占4个字节,而char类型的数据要占1个字节。

3.给数组赋值

1.用赋值语句对数组元素逐个赋值;

2.初始化赋值,即类型说明符  数组名[常量表达式]={值,值,…,值}

        :①可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如,“int a[10]={0,1,2,3,4};”表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。
        ②只能给元素逐个赋值,不能给数组整体赋值。例如,给10个元素全部赋1值,只能写为“int a[10]={1,1,1,1,1,1,1,1,1,1};”,而不能写为“int a[10]=1;”。如给全部元素赋值,则在数组说明中,可以不给出数组元素的个数。例如,“int a[5]={1,2,3,4,5};”可写为“int a[ ]={1,2,3,4,5};”。
        ③初值个数不能大于数组元素个数。例如“int a[5]={1,2,3,4,5,6};”是错误的。

3.动态赋值,可用循环语句和scanf_s函数逐个对数组元素赋值;

4.求数组的大小

可以通过sizeof运算符来进行计算得到;

如下,结果为20,5

int V[]={1,2,3,4,5};
printf("%d\n",sizeof(V));//求数组的大小
printf("%d\n",sizeof(V)/sizeof(V[0]));//求数组中元素的个数

二. 二维数组

1.定义

类型说明符  数组名[数组大小1][数组大小2]

        注:数组大小1表示行数,数组大小2表示列数,如表示第2行第1列的元素,应写为a[2][1]。

二维数组在概念上是二维的,但在内存中是连续存放的。C语言中,二维数组按行排列

2.初始化(赋值)

①按行分段赋值,如int a[5][3]={ {1,2,3} , {4,5,6} , {7,8,9} , {1,3,4} , {2,5,6} }

②按行连续赋值,如int a[5][3]={1,2,3,4,5,6,7,8,9,1,3,4,2,5,6}

③只对部分赋值,未赋值的取0值

④对全部元素赋值,第一维长度可以不给出,如int a[][3]={1,2,3,4,5,6,7,8,9}

遍历一个二维数组,如

int arr[][3]={1,2,3,4,5,6,7,8,9,10};
int i,j;
for (int i=0; i<4; i++)
    {
        for (int j=0; j<3; j++)
            {
                printf("%d\t",arr[i][j]);
            }
        printf("\n");
    }

结果为

 

三. 字符数组

定义:用来存放字符的数组,实际上是一系列字符的集合,即字符串string。通常用一个字符数组来存放一个字符串。

1.赋值

可以直接将字符串一次性地赋值给字符数组(数组长度可以不指明),如char str[ ]="c.program"。

注:字符数组只有在定义时才能将整个字符串一次性赋值,定义过之后只能一个一个赋值;

2.字符串长度

使用string.h头文件中的strlen()函数来求字符串的长度,用法:

length strlen(字符串名字)

例子:

#include<stdio.h>
#include<string.h>//记得引入头文件
int main()
{
    char str[]="c.program.";
    long len=strlen(str);
    printf("The length of string  is %ld.\n",len);
    return 0;
}

结果为

3.字符串结束标志

字符串结束标志为 '\0' ,没有'\0' 就到达不了字符串的结尾。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值