第二章 类型、运算符与表达式

本文深入探讨C语言中的关键概念,包括位模式、常量表达式、const限定符、枚举类型及声明与定义的区别。通过具体示例解释这些概念如何在实际编程中应用。

1. 位模式 bit pattern

\ooo(ooo代表1到3个八进制数字)用来直接表示对应数字的ASC码
\xhh(hh是1到2个十六进制数字)用来直接表示对应数字的ASC码


2. 常量表达式

常量表达式就是只含有常量,不含有变量。这种表达式在编译时求值,而非运行时求值。
注意,全局变量只会进行一次初始化操作,而且是程序开始执行之前进行,并且初始化表达式必须为常量表达式。
而局部变量如果有显式初始化,则每次进入函数或者程序块都会初始化一次,且初始化表达式可以为任何表达式。


3. const限定符

用来限定变量时,变量值不能被修改。
用来限定数组时,数组所有元素的值都不能修改。
当数组作为某个函数的参数时,如int strlen(const char[ ]),用const来限定函数的数组形参,表示函数不能修改传递过来的数组元素的值。


4. 枚举类型

理解

枚举类型可以结合typedef来理解,倘若一种类型的变量只有几种可能的取值,就可以枚举类型来定义它

格式

1)enum weekday {sun,mon,tue,wed,thu,fri,sat};
以上定义了一种新的枚举类型weekday,这种类型只有七种取值。可以用这种新类型再来定义变量,如weekday workday;weekday weekend;等。
2)enum {sun,mon,tue,wed,thu,fri,sat} workday,weekend;这样是直接定义了两个这种类型的变量,但并未给这种类型命名。
3)大括号中的7个不是变量,是枚举元素或枚举常量,因编译系统把他们当成常量处理。因此不能再对他们赋值。
4)若在定义时不显式为枚举元素赋值,则从0开始顺序加1,若有部分显式赋值,则未赋值部分从最后一个显示赋值元素后自动顺序加1。
5)workday=(enum weekday)2;使用强制类型转换符来对枚举元素再次赋值,相当于将顺序号为2的元素赋值给workday,相当于workday=tue。

5. 声明与定义

声明:说明变量或者函数的性质,但并不分配存储单元。也就是仅仅告诉编译系统有这么一个性质的东西。
定义:创建变量或分配存储单元。
声明的位置没有限制:对函数声明来说,只要是调用此函数之前的任何地方。对于全局变量来说,在哪里声明,该全局变量的作用域就被扩展到了哪里。
函数的声明是函数原型,函数的定义是函数本身。可以有多个声明,但只有一个定义。

逻辑运算符

||与&&特殊点在于,它们从左往右顺序进行求值,一旦知道最终结果为真或假,立刻停止运算。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值