码迷,mamicode.com
首页 > 其他好文 > 详细

C程序设计导引(5)

时间:2018-02-15 23:20:46      阅读:345      评论:0      收藏:0      [点我收藏+]

标签:个数   专题   先进先出   语法   col   哈希表   简单   表示   决定   

第6章 数组

虽然数组放到很靠后的位置,但实际上它与intdouble等在难度上没有本质区别。我们可以把一个数组理解为一组格子,格子的名称就是数组的名字。

定义一个一维数组的格式为:

<类型>  <数组名> [元素个数];

比如:int a[100];

表示定义了一个一维数组,数组里有100个格子,每个格子里可以存储一个int类型的变量。当然了,或许一维数组理解成一行表更加合适。需要注意的是,格子的编号是从099

所以,int a[100][100];就定义了一个二维数组,相当于一个100*100的表格。三维则继续推广。虽然没有维数的限制,但因为有程序使用的内存的限制(能使用的格子的数量的限制),维数一般不会太多。

如果想知道一个数组中包含的元素个数,一般用下列语句:

sizeof(x)/sizeof(x[0]);

sizeofC语言提供的一元运算符,可以返回某个类型、变量或数组所占用内存的字节数。

 

复制数组:我们只能给数组中的某个格子复制。赋值语句形式如下:

a[n]=x; n为下标,必然是非负整数。二维和更高位的数组以此类推。

 

数组元素的排序,用一篇专题来写。查找通常是二分查找。

 

使用一维数组的常用数据结构:

散列表——哈希表:

利用数组下标,建立数值和下标的函数,就可以在需要的时候迅速找到数值。

栈:先进后出。操作包括:栈的初始化、元素进栈、元素出栈、检查栈是否为空。栈说白了是一个思想,只是用数组来实现的,还是要做题才能掌握。可以简单理解为,把一个东西放到桶里,先放进去肯定在桶底,拿出来的时候先拿出桶的上部的东西。

队:先进先出。操作和栈是一样的。队就好比火车过隧道,肯定是先进入隧道的那节车厢先出隧道。

 

第7章 指针

我决定不写指针了……因为这玩意儿虽然对于函数原理的理解很有帮助,但平时做题编程真的很少用到。还是把精力放到算法上……

 

第8章 编程思想

文章中处处体现的东西就不单独写啦。

 

9章 结构和联合

结构(struct):

定义一个结构类型的语法如下:

struct [<类型名>]{

<类型> <成员名称>;

};

比如定义一个结构:

struct innt{
    int a;
    bool flag;
};

这样定义的innt用法和intbool等类型没有区别。既可以定义变量,也可以作为数组类型:

innt qaq,kuku[100];

调用的时候就可以:

qaq.a=100; qaq.flag=1;
kuku[10].a=5; kuku[10].flag=0;

联合的定义语句和结构几乎相同,只需要把struct换成union。二者的区别在于结构中各个成员变量的存储空间是独立的,而联合中各个成员变量的存储空间是共享的。所以同一时间一个联合中只能有一个数据。编程中没遇到过,所以就不细说了。

C程序设计导引(5)

标签:个数   专题   先进先出   语法   col   哈希表   简单   表示   决定   

原文地址:https://www.cnblogs.com/Shymuel/p/8449898.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!