《一站式C编程》读书笔记(3)

第二章 常量、变量和表达式

2.1 继续Hello World

我们继续学习Hello World,看下面的例子

屏幕快照 2016-07-17 下午10.05.55

第一个注释跨了四行,头尾两行是注释的界定符(Delimiter)/*和*/,中间两行开头的*号(Asterisk)并没有特殊含义,只是为了看起来整齐,这不是语法规则而是大家都遵守的C代码风格(Coding Style)之一,代码风格将在第9章详细介绍。

使用注释要注意以下两点。

  1. 注释不能嵌套(Nest)使用。
  2. //comment这样的注释,不能跨行使用。

像“Hello,world.\n”这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。注意:printf打印出来的是Hello,world.而没有双引号,因此双引号是字符串字面值的戒定福,夹在双引号中间的一串字符才是它的内容。注意,打印出来的结果也没有\n这两个字符,这是因为\n表示的是转义字符,表示换行。

C标准规定的转义字符如下图:

屏幕快照 2016-07-18 下午3.54.59屏幕快照 2016-07-18 下午3.55.05

好的代码风格要求缩进争气,每个语句一行,适当留空行。

 

2.2常量

常量(Constant)是程序中最基本的元素,有字符(Character)常量,整数(Integer)常量,浮点数(Floating Point)常量和枚举常量。

下面看个例子:

屏幕快照 2016-07-18 下午3.15.01

编译运行后的结果是:

屏幕快照 2016-07-18 下午3.17.04

printf中的第一个字符串称为格式化字符串(Format String),它规定了后面几个常量以何种格式插入到这个字符串中,在格式化字符串中%号(Percent Sign)后面加上字母c、d、f分别表示字符型、整型和浮点型的转换说明(Conversion Specification),转换说明只在格式化字符串中占个位置,并不出现在最终的打印结果中,这种用法通常叫做占位符(Placeholder)。转义序列是在编译时处理的,而转换说明是在运行时调用printf函数处理的。

 

习题:

  1. 我们知道,用\斜线表示转义序列和在printf格式化字符串中用%号表示占位符是两种不同的机制,前者在编译时处理,后者在运行时处理。但两者在语法上具有类似的规律,想想在printf格式化字符串中怎么表示一个%字符?写个小程序试验一下。

程序如下:

屏幕快照 2016-07-18 下午3.25.47

 

  • 变量

变量(Variable)是编程语言最重要的概念之一,用来存储值。

给变量起名有一定的限制,C语言规定必须以字母或下划线_(Underscore)开头,后面可以跟若干个字母、数字、下划线,但不能有其他特殊字符。还有就是一下的这些单词称为关键词或保留字(Reserved Word),不能用作变量名。一般情况应避免下划线开头的变量名。并且变量名尽量使用有意义的名字,让别人一看名字就知道你的变量的用途。

2.4赋值

定义一个变量,就是分配一块存储空间并给它命名;给一个变量赋值,就是把一个值保存到这块存储空间中。变量的定义和赋值可以一步完成,这称为变量的初始化(Initialization)。注意,初始化时一种特殊的声明,而不是一种赋值语句。赋值的时候要注意变量类型,否则编译会报错。

下图是一般的赋值:屏幕快照 2016-07-18 下午3.47.48

下面是变量的初始化:

屏幕快照 2016-07-18 下午3.49.25

0 Comments
Leave a Reply