1、数组,结构体和指针是C语言里面最难的部分,如果在编程中可以熟练的运用这三样工具,会大大地提高开发效率,简化程序结构,提成代码运行速度。
2、数组
(1)C语言中的数组分为一维数组和二维数组,数组其实就是在计算机的内存中给分配一块空间,这个空间根据数组的数据类型确定。
(2)一维数组:一维数组是最常用的形式,定义方式如下图所示。
上面三种定义方法区别只是在给定初始值上,数组名是tab,数组类型是char,上面三种方式都是定义了一个字符型名字叫做tab的数组,数组长度12个字节,第一个数据地址为0,数组里面数据调用的方法如下图所示。
这段程序的运行结果是在屏幕上打印出0这个数字。
(3)二维数组:二维数组用的地方不多,,定义方式如下图所示。
上面三种方法都是定义二维数组的方式,都定义了一个2行7列的二维数组,数组名tab,数组类型char,第一个中括号里面指定行的位置,第二个中括号里面指定列的位置,第一个元素是tab[0][0],元素排列如下表所示。
0 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
7 | 8 | 9 | 10 | 11 | 12 | 13 |
数组里面数据调用的方法如下图所示。
这段程序的运行结果是在屏幕上打印出9这个数字。
3、结构体
(1)结构体是由一批数据组合而成的一种新的数据类型。组成结构型数据的每个数据称为结构型数据的“成员”,举个学生信息的例子来说明结构体,一个学生信息最起码需要有性别,姓名,年龄,家庭住址这些信息,而这些信息的数据类型肯定是不一样的,比如年龄的数据类型一般就会用整型表示,但是性别,姓名这些就需要用字符串来表示(C语言中无法定义字符串变量,所以一般字符串变量就是用一维数组来实现),那么这个结构体就应该是:
struct 学生信息{
char姓名[3];
int年龄;
};
(2)结构体的创建方式如下图所示。
方法如
上面是三种创建结构体的方式,其中前两种创建的结构体名称就是Data1,里面有一个char类型的20个字节的数组num和一个整型的result。但是第三种方法,由于使用了typedef,这个关键字的意思是给新的结构体重新起一个名字,所以第三种方法实际是创建了一个新的Data类型的结构体,最后22行的Test才是这第三种方法创建的结构体的名字。
(2)结构体的引用:结构体上面已经创建好了,那么如何引用呢,结构体引用的时候一般都是结构体名称+”.”+元素名称,如下图所示。
下图所
示。
注:无论结构体用那种方式定义,通常引用都是这种格式(有一种特殊情况)
-
C语言
+关注
关注
180文章
7617浏览量
138104 -
编程
+关注
关注
88文章
3644浏览量
94152 -
数组
+关注
关注
1文章
417浏览量
26046
发布评论请先 登录
相关推荐
周立功教你学C语言编程:结构体,使程序设计更方便——内置函数指针和嵌套结构体

C程序设计的详细中文资料免费下载
C语言程序设计教程之二维数组如何应用二维数组的资料概述
C++程序设计教程之数组的详细资料说明

C语言程序设计全套培训课件免费下载

C语言程序设计的学习课件免费下载

Keil使用结构体数组的奇怪问题

评论