C 语言有多少个关键字?sizeof 怎么用?它是函数吗?有些人不知道C 语言有多少个关键字,大多数人往往会认为sizeof 是函数,因为它后面跟着一对括号,有的人不能理解为什么C 语言关键字竟有32 个之多。更有甚者,说大学老师告诉他们sizeof 是函数,没想到它居然是关键字!
什么是定义:所谓的定义就是(编译器)创建一个对象,为这个对象分配一块内存并给它取上一个名字,这个名字就是我们经常所说的变量名或对象名。但注意,这个名字一旦和这块内存匹配起来(可以想象是这个名字嫁给了这块空间,没有要彩礼啊。^_^),它们就同生共死,终生不离不弃。并且这块内存的位置也不能被改变。一个变量或对象在一定的区域内(比如函数内,全局等)只能被定义一次,如果定义多次,编译器会提示你重复定义同一个变量或对象。
第一重含义:告诉编译器,这个名字已经匹配到一块内存上了(伊人已嫁,吾将何去何从?何以解忧,唯有稀粥),下面的代码用到变量或对象是在别的地方定义的。声明可以出现多次。
第二重含义:告诉编译器,我这个名字我先预定了,别的地方再也不能用它来作为变量名或对象名。比如你在图书馆自习室的某个座位上放了一本书,表明这个座位已经有人预订,别人再也不允许使用这个座位。其实这个时候你本人并没有坐在这个座位上。这种声明最典型的例子就是函数参数的声明,例如:
好,这样一解释,我们可以很清楚的判断:A)是定义;B)是声明。那他们的区别也很清晰了。记住,定义声明最重要的区别:定义创建了对象并为这个对象分配了内存,声明没有分配内存。
编译环境设置好以后,就可以正式学习C语言了。
1.标识符的命名有一定的规则:
(1).标识符只能由字母、数字和下划线三类字符组成
(2).第一个字符必须是字母(第一个字符也可以是下划线,但被视作系统自定义的标识符)
(3).大写字母和小写字母被认为是两个不同的字符,如A和a是两个不同的标识符
(4).标识符可以任意长,但只有前32位有效。有些旧的C版本对外部标识符的限制为6位。这是由于链接程序的限制所总成的,而不是C语言本身的局限性
(5).标识符不能是C的关键字
2.从上面的规则中,有个关键字的概念。那么什么叫关键字呢?
从表面字意上也可以看出,关键字是C语言本身某些特性的一个表示,是唯一的代表某一个意思的。
下面列出ANSI标准定义的32个C语言的关键字,这些关键字在以后的学习中基本上都会用到,到时再说它们的各自用法。
auto break case char const continue default
do double else enum extern float for
goto if int long register return short
signed sizeof static struct switch typedef
union unsigned void volatile while
C语言还包括一些不能用做标识符的扩展关键字。
asm cdecl _cs _ds _es far
huge interrupt near pascal _ss
所以在以后的学习中,在给变量命名时要避开这些关键字。
3. Turbo C2.0规定所有变量在使用前都必须加以说明。一条变量说明语句由数据类型和其后的一个或多个变量名组成。变量说明的形式如下:
类型 <变量表>
这里类型是指Turbo C2.0的有效数据类型。变量表是一个或多个标识符名,每个标识符之间用,分隔。
整型变量
整型变量是用来存储整数的。
整型变量又可具体分为好几种,最基本的整型变量是用类型说明符int声明的符号整型,形式如下:
int Counter
这里int是类型说明符,Counter是变量的名字。
整型变量可以是有符号型、无符号型、长型、短型或象上面定义的普通符号整型。
整型是16位的,长整型是32位,短整型等价于整型。
以下是几种整型变量的声明示例:
long int Amount /*长整型*/
long Amount /*长整型,等价于上面*/
signed int Total /*有符号整型*/
signed Total /*有符号整型,等价于上面*/
unsigned int Offset /*无符号整型*/
unsigned Offset /*无符号整型,等价于上面*/
short int SmallAmt /*短整型*/
short SmallAmt /*短整型,等价于上面*/
unsigned short int Month /*无符号短整型*/
unsigned short Month /*无符号短整型,等价于上面*/
从上面的示例可以看出,当定义长整型、短整型、符号整型或无符号整型时,可以省略关键字int。