常量

C语言中有字符常量(character)、整数常量(Integer)、浮点数(floating point)常量和枚举常量。

  1. #incldue <stdio.h>
  2. int main(void){
  3. printf("character:%c\ninteger:%d\nfloting point:%f\n",'}',34,3.14);
  4. return 0;
  5. }

上面程序的执行结果为

  1. character:}
  2. integer:34
  3. floating point:3.14

printf中的第一个字符串称为格式化字符串(Format String),它规定了后面几个常量以何种格式插入到这个字符串中,在格式化字符串中%号(Percent Sign)后面加上字母c、d、f分别表示字符型、整型和浮点型的转换说明(Conversion Specification),转换说明只在格式化字符串中占个位置,并不出现在最终的打印结果中,这种用法通常叫做占位符(Placeholder)。这也是一种字面意思与真实意思不同的情况,但是转换说明和转义序列又有区别:转义序列是编译时处理的,而转换说明是在运行时调用printf函数处理的。源文件中的字符串字面值是”character: %c\ninteger: %d\nfloating point: %f\n”,\n占两个字符,而编译之后保存在可执行文件中的字符串是character: %c换行integer: %d换行floating point: %f换行,\n已经被替换成一个换行符,而%c不变,然后在运行时这个字符串被传给printf,printf再把其中的%c、%d、%f解释成转换说明。
“5”、’5’、5,第一个是字符串字面值,第二个是字符,第三个是整数。

变量

变量是计算机存储器中一块命名的空间,可以在里面存储一个值。如:

  1. char fred;//字符型变量
  2. int bobo;//整形变量
  3. float jinn;//浮点型变量
  4. double tom;

声明和定义

C语言中有变量声明、函数声明和类型声明三种。如果一个变量或者函数的声明要求编译器给它分配存储空间,那么也可以称为定义,所以定义是声明的一种。
声明和语句一样也以分号(;)结尾,但语句只能出现在{}中,而声明可以写在{}外。
给变量起名有一定规定,变量名、函数名、宏定义、结构体成员等,这些都称为标识符。标识符必须以字母或下划线开头,后面跟着若干字母、数字和下划线。除了满足这些规则以外,还要避免使用C语言规定的关键字,c99规定的关键字有:
auto break case char const continue default do double
else enum extern float for goto if inline int long
register restrict return short signed sizeof static struct switch typedef
union unsigned void volatile while _Bool _Complex _Imaginary
尽量不要使用下划线开头的标识符。