栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言学习笔记*数组和结构

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言学习笔记*数组和结构

1.一维数组(一组具有相同数据类型的变量)

        1.定义:数据类型 变量名【数组长度:常量】;

        2.初始化:1.定义时初始化:数据类型 变量名【5】={0};

                                                      数据类型 变量名【】={1,2,2,3,4};

                                                      数据类型 变量名【5】={1,2,2};

                                                      数据类型 变量名【5】={1,2,2,3,4};

                          2.函数初始化:for+scanf;

        3.数组元素的使用:1.访元素:array【i】;

                                        2.访地址:array+i;&array【i】;

        4.数组的存储空间:从以数组名代表的首地址为开头,分配一段连续的内存空间(由于物理结构上的设置,使得通过数组访问元素十分快捷)

2.二维数组&高维数组(数组元素是低维数组的数组)

        1.二维定义:type array【i】【j】;

           高维定义:type array【a1】【a2】【...】;维度高-->低;

        2.初始化: 数据类型 变量名【】【3】={1,2,2,3,4};//两行三列,最后一个补充为0;

                           数据类型 变量名【3】【3】={1,2,2,3,4};//3*3,没初始化的都是0;

                           数据类型 变量名【3】【3】={{1,2},{2,3},4};//按行初始化,没初始化的都是0;

        3.数组元素的访问:1.访元素:array【i】【j】;

                                        2.访地址:*(array+i)+j;&array【i】【j】;array【i】+j;

        4.数组的存储空间:依然是分配连续的空间,但是按行存放数据(存完一行之后存下一行);

3.字符数组(字符串,涉及到调用)

        1.字符一维数组:1.定义:char array【字符串长度+1】;//+1给出

                                     2.初始化:1.char array【字符串长度+1】=“字符串”;

                                                       2.gets(array);//可以带空格的输入

                                                       3.scanf(“%s”,array);//遇到空格结束输入;array表示数组地址,二维数组不能直接这样表示;

                                     3.数组处理及元素访问:1.元素访问:参见一维数组元素访问;

                                                                            2.数组处理

                                                                                1.strcat(array1,array2);

                                                                                                             //将数组2连接到数组1后面 

                                                                                2.strcpy(array1,array2);

                                                                                                            //将数组2复制到数组1并覆盖

                                                                                3.strcmp(array1,array2);

                                                                                                            //从左向右比较数组1和2若有不相同字符则根据ascll码分别有 :1>2:正数;1<2:负数;1=2:0(两个字符串完全相等也返回0);

      

                                                                                4.strlen(array); //获得字符串长度;

                                                                                5.puts(array);//输出;

                                                                                5.printf(“%s”,array);//输出;

        1.字符二维数组:1.定义:char array【字符串个数】【字符串长度+1】;//+1给出

                                     2.初始化:1.char array【字符串个数】【字符串长度+1】;=“字符串1,字符串2,字符串3....”;

                                                       2.gets(array+i);//可以带空格的输入

                                                       3.scanf(“%s”,array+i);//遇到空格结束输入;array表示数组                                                              地址,二位数组不能直接这样表示;

                                     3.数组处理及元素访问:1.元素访问:参见二维数组元素访问;

数组常见错误:1.长度没有定义为常量(c中const定义为不可修改的变量,c++定义为常量)

                         2.越界访问

4.结构(一组具有联系的数据)

        1.结构体定义:struct 结构体名{数据类型1 成员名1;

                                                          数据类型2 成员名2;

                                                          数据类型3 成员名3;}结构体数据名;

                      typdef struct 结构体类型名{数据类型1 成员名1;

                                                          数据类型2 成员名2;

                                                          数据类型3 成员名3;}结构体数据名;

                                                                                                        //结构体数据类型可以嵌套

        2.内容初始化:1.定义时初始化:struct 结构体类型名 结构体数据名={按结构体内数据顺序依次填入数据};//和函数初始化一样

                                                          结构体数据名={按结构体内数据顺序依次填入数据};//使用了typdef预定义

                                2. 成员初始化:struct 结构体类型名 结构体数据名.成员名1={};

                                                        结构体数据名.成员名1={};

                                 3.直接赋值(复制):同类型结构体之间可以直接赋值;

        3.结构体使用:结构体数据名.成员名1;//访问结构体内的成员1;

        4.储存:还不是很清楚

                                                                               

                                                                                                                

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1008370.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号