摘要: 在实际问题中, 有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月, 一个班每周有六门课程等等。如果把这些量说明为整型, 字符型或其它类型显然是不妥当的。 为此,c语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值, 被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是, 枚举类型是一种基本数据类型,而不是一种构造类型, 因为它不能再分解为任何基本类型。 枚举类型的定义和枚举变量......
摘要: 1、概述 static 声明的变量在c语言中有两方面的特征: 1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。 2)、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。 2、问题:static的理解 关于static变量,请选择下面所有说法正确的内容: a、若全局变量仅在单个c文件中访问,则可以将这个变量修改为静态全局变量,以降......
水滴石穿C语言之指针综合谈 概述 【相关文章:
近期上网小心木马 假借圣诞祝福QQ消息传】 【扩展阅读:
大唐电信出资1182万元 进军MONS电】 joel spolsky认为,对指针的理解是一种aptitude,不是通过训练就可以达到的。虽然如此,我还是想谈一谈这个c/c++语言中最强劲也是最容易出错的要素。 【扩展信息:
移动卫星宽带开通 上网费每兆流量7.8美】 鉴于指针与目前计算机内存结构的关联,很多c语言比较本质的特点都孕育在其中,因此,本篇与第六、第七两篇我都将以指针为主线,结合在实际编程中遇到的问题,来详细谈谈关于指针的几个重要方面。 指针类型的本质分析 1、指针的本质 指针的本质:一种复合的数据类型。下面我将以下面几个作为例子进行展开分析: a)、int *p; b)、int **p; c)、int (*parvalue)[3]; d)、int (*pfun)(); 分析: 所谓的数据类型就是具有某种数据特征的东东,比如数据类型char,它的数据特征就是它所占据的内存为1个字节, 指针也很类似,指针所指向的值也占据着内存中的一块地址,地址的长度与指针的类型有关,比如对于char型指针,这个指针占据的内存就是1个字节,因此指针也是一种数据类型,但我们知道指针本身也占据了一个内存空间地址,地址的长度与机器的字长有关,比如在32位机器中,这个长度就是4个字节,因此指针本身也同样是一种数据类型,因此,我们说,指针其实是一种复合的数据类型, 好了,现在我们可以分析上面的几个例子了。 假设有如下定义: 那么,nvalue的类型就是int,也就是把nvalue这个具体变量去掉后剩余的部分,因此,上面的4个声明可以类比进行分析: a)、int * *代表变量(指针本身)的值是一个地址,int代表这个地址里面存放的是一个整数,这两个结合起来,int *定义了一个指向整数的指针,类推如下: b)、int ** 指向一个指向整数的指针的指针。 c)、int (*)[3] 指向一个拥有三个整数的数组的指针。 d)、int (*)() 指向一个函数的指针,这个函数参数为空,返回值为整数。 ...
下一页 摘要: “联合”与“结构”有一些相似之处。但两者有本质上的不同。在结构中各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和。而在“联合”中,各成员共享一段内存空间, 一个联合变量的长度等于各成员中最长的长度。应该说明的是, 这里所谓的共享不是指把多个成员同时装入一个联合变量内, 而是指该联合变量可被赋予任一成员值,但每次只能赋一种值, 赋入新值则冲去旧值。如前面介绍的“单位”变量, 如定义为一个可装入“班级”或“教研室”的联合后,就允许赋予整型值(......