C语言基础——数组(上)——一维数组

本文详细介绍了数组的概念,包括其批量定义、特点,以及如何通过数据类型、变量名和元素个数进行定义。还涵盖了数组的初始化方法,如完全初始化、部分初始化和省略元素个数,以及数组在冒泡排序中的应用。此外,文中还讨论了字符型数组的定义、初始化方式,以及键盘输入的scanf和gets函数的使用。
摘要由CSDN通过智能技术生成

一、数组

1.概念:批量定义若干个类型相同的元素;

2.特点:①定义若干个类型相同的元素;

           ②数组的元素地址空间连续;

           ③数组名是数组的首元素地址,也是整个数组的首地址;

3.定义: 数据类型 +变量名[元素个数];

            数据类型:元素的数据类型;

            变量名:符合标识符命名规则即可;

            变量的类型:去掉变量名,剩下的所有就是该变量的数据类型

            eg:int a;           a:int   

                   double b;     b:double

                   int num[10];    num: int[10]

            整个数组的数据类型:数据类型+[元素个数];

            整个数组的大小=元素的数据类型大小 * 元素个数;

                                     =sizeof(数据类型[元素个数]);

                                     =sizeof(变量名);

            元素个数=整个数组的大小/元素的大小;

            eg: int num[10]; //定义10个int类型的元素  整形数组;

                    元素的数据类型:int;

                    整个数组的数据类型(num的数据类型):int[10]

                    整个数组的大小(num的大小):4*10=40;

                    char buf[32]; 字符型数组

                    元素的数据类型(buf[32]):char

                    整个数组的数据类型(buf的数据类型):char [32]

                    整个数组的大小:1*32=32;

                                                  sizeof(char[32]) ==32

                                                  sizeof(buf) : 32      

                   double num[6];   浮点型数组

                   元素的数据类型:double

                   整个数组的数据类型(num的数据类型):double [6]

                   整个数组的大小:6*8=48;

                                                sizeof(double[6]) ==48

                                                sizeof(num) :48

4.使用:

(1)取元素:

         格式:变量名[下标]

                    下标:距离首元素的偏移量;

                     下标的范围:0到数组的元素个数-1;

    

(2)数组的初始化(定义+赋值):

          ①完全初始化,依次赋值

                int num[6] = {1,2,3,4,5,6};

 

        ② 部分初始化,依次赋值,剩下的默认赋值为0;

                int num[6] = {11,22};

                

        ③省略数组元素个数的初始化:一定是完全初始化。

                int num[]  = {11,12,6,8,9,1,3,5,6,7,8};

                元素个数=数组大小/元素大小;

                即元素个数=sizeof(num)/sizeof(num[0]);

                 

 ④数组的输入输出:

 ⑤只定义,不赋值:遵循全局变量和局部变量自身的原则。

5.数组的应用——冒泡排序——从大到小

eg:int num[6] = {2,8,6,3,1,7};

 

 

6.字符型数组定义和使用:

char buf[32];//字符型数组

数组名:buf

buf的数据类型:char[32];

buf[0]的数据类型,即元素的数据类型:char

sizeof(buf)=32字节

sizeof(buf[0])=1字节

①用字符串初始化字符型数组:

        字符串: "hello"——'h','e','l','l','o'

        char buf[32]={"hello"};

        buf[0]='h' , buf[1]='e', buf[2]='l',buf[3]='l',buf[4]='o' ,buf[5]='\0',buf[6]-----buf[31]=0

②从键盘输入:

        %s——字符串的格式控制符;

        char buf[32]={0};

        scanf("%s",buf);//%s后面对应的输入列表是数组名(数组名是一个地址),%s表示从键盘接收一个字符串,空格和回车表示输入的完成。

        

注:scanf和%s结合,不能接收空格,因为%s遇到'\0'和回车停止打印;

              

 引入新的函数gets

格式:gets(数组名);//数组名必须对应字符型数组;

功能:从键盘接受一个字符串,仅仅遇到回车表示获取完成;

注:有时编译后系统会有警告提醒,正常运行即可。使用gets()函数时,数组空间要充裕。

今天的学习就到这里啦,有什么不理解的或者想要讨论的欢迎大家在评论区留言~

                        长路漫漫亦灿灿,我们终会成为更优秀的人!加油!

                       

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值