C语言数组

数组

1.什么是数组?

    数组是相同类型的数据的集合。

2.数组的特征?

    数组中的数据(元素)是相同类型的。

    数组中的数据(元素)存放在内存中,在内存中空间是连续的。

    下标(索引):

        下标(索引)代表了数组中元素距离第一个元素的偏移位置。

        下标(索引)从0开始的。

3.数组的定义:

    一维数组的定义格式:

                        数据类型  数组名[数组容量];

                    数据类型:代表数组中数据的类型

                    数组容量:数组中能够存储多少个元素,数组容量可以是一个常量,

                常量表达式,符号常量,但是必须是整型。

    注释:

        1.定义一个数组,相当于在内存空间上申请了可以容纳指定元素数量的内存单元,在内存中空间是连续的。

        2.定义一个数组相当于定义了多个匿名变量,这些变量可以通过数组名[下标]来进行标识。

4.数组元素的访问:

    原则:数组中的元素不能一次性访问全部元素,只能单个访问。

    访问一个数组:

        int a[10];

       

        a[0]=666;

        a[3]=888;

       

        a=1;        //error

        a[10]=1;    //error

       

        注意事项:数组元素的访问一定不能越界。

5.数组的初始化:

    定义数组的同时,用指定的数据给对应的元素进行赋值。

   

    数据类型  数组名[数组容量]={常量1,常量2,常量3...};

       

    注意事项:

        1.数组可以部分初始化:也就是给数组中前几个元素初始化,

    未被初始化的自动赋值为0。

        2.如果定义数组时,未说明数组容量,系统会根据初始化的个

    数来决定数组容量。

    柔性数组:柔性数组的概念是在C99标准出现的,针对结构体的最后

一个成员可以是未指定大小的数组。

    简单的理解方法:数组容量待定或待确定的数组。

面试题:在不知道数组类型的情况下,如何确定数组元素个数???  

    int n = sizeof(a)/sizeof(a[0]);

   

6.冒泡排序:

    冒泡思想

    1.一次只排好一个数据,针对n个数据,最差的情况是进行n-1可以排好

    2.每次排序将相邻的数据两两比较,将数据较大的数据向后交换,等所有的数据都

比较完成,则最大的出现在最后的位置。

    3.在余下的数据中,重复2操作,直到只剩下一个数。

   

    int i,j,temp;

    int n = sizeof(a)/sizeof(a[0]);

   

    for(i=0;i<n-1;i++)

    {

        for(j=0;j<n-1-i;j++)

        {

                if(a[j]>a[j+1])

                {

                    temp   =    a[j];

                    a[j]   =    a[j+1];

                    a[j+1] =    temp;

                }

        }

    }

   

7.二维数组:

    定义格式:   数据类型   数组名[行数][列数];

    应用场景:   主要用于有行列要求的情况。

   

    注意事项:二维数组在内容中是按照行顺序来进行存储的。

   

8.字符数组:

    元素类型为char的字符型数组。

    字符数组是用来存储字符串数据的。

    1.字符串的输入

        char buf[32];

        scanf("%s",buf);

        采用scanf输入时,要求字符串中不能有空格等,否则就结束了。

    2.字符串的输入

        char buf[32];

        fgets(buf,32,stdin);

        采用fgets输入时,可以获取输入的所有的字符,包括回车(\n).

    3.字符串的拷贝

        char buf[32];

       

        strcpy(buf,"hello my class");

        strncpy(buf,"hello my class",n);

       

    4.字符串的拼接

        char a[32]="hello";

        char b[32]="kitty";

       

        strcat(a,b);        hellokitty

       

    5.字符串的比较

        char a[32]="hello";

        char b[32]="kitty";

       

        strcmp(a,b);

        strcmp("hello","kitty");

    6.字符串的长度

        unsigned int len=strlen("hello");

       

   

   

   

   

   

   

   

   

   

   

       

全部评论

相关推荐

哇哇的菜鸡oc:他这不叫校招offer,而是实习offer
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务