标识符
标识符是有效字符序列,是一个对象的名字。用于标识用户自己定义大的变量、符号常量、函数名、数组名、类型名等。前面学习大的例子中的整型变量num、浮点型变量fnum、字符变量ch等等,均为用户定义的标识符。
命名规则:
·不能是关键字
·只能由字母、数字和下划线组成,且区分字母大小写
·名称的第1个字符必须是字母或者下划线,不能是数字
·名称中间不能有空格
·标识符可以为任意长度,但最好不要超过31个字符
·不要和C语言库函数名称相同
例如:
思考:MyMotherland和Mymotherland是同一个标识符吗? 不是
只要标识符中存在不同的字符(包括大小写),都视作两个不同的标识符,因此,他们是不同的表标识符。(命名规则第2条)
建议:为了增强程序的可读性,在为变量、函数等命名时,尽量使用有意义的标识符,即做到“见名知意”。例如,一个人的年龄可用age,姓名可用name等;如果名称需要多个单词组合,可以采用匈牙利名称法。其规则是每个单词的第一个字母大写,例如学生姓名变量可用标识符StduntName
关键字
关键字(keyword) 又叫保留字。他们是C语言,预先定义好的字符序列,具有特殊的含义
和用法,使用者不能将其作为标识符( 见标识符命名规则)。ANSIC中有32个关键字。
关键字构成了C语言语法的全部,在程序设计的IDE中关键字将会以特殊样貌显示。例如,
在DEV-C++中会以加粗字显示。通过观察这些关键字的状态,可以很快的发现,在编写代
码的过程中,是否有拼写错误。
常量
常量是在程序运行过程中不能改变的量。程序员可以在程序中直接书写常量
整数常量
浮点数常量
注意:
(1) 小数1.0和整数1是不同的。虽然两者在数值.上是相等的,但两者类型不同。
不同的数据类型,在计算机的运算过程中采用的方式也不同,最终会导致结果不同。
在需要小数1.0时,千万不要偷懒,写作1。如: 1.0/2、 1/2结果不同,前者等于0.5,后者等于0。
(2)实型常量默认是double型的实数,如果在数的后面加字母F或f,则认为是float型的实数。如: 1.65f 与1.65,floata=3.14编译时 会出现警告。
字符常量
注意:由于有ASCII码的存在,将码值和字符关联在一起。所以一个字符常量的表示方法有多种,可以使用字符本身,也可以使用数值,在程序的编写过程中尽量使用字符本身,这样可以提供程序的可读性。如: 'A' 与6存储在计算机内时完全一样。.
变量
变量是在程序运行过程中其值可以改变的量。
变量的名称必须用标识符来标识。变量根据数据类型可以分为不同的变量类型。
如整数变量、浮点数变量和字符变量等,不同类型变量的存储空间是不同的。
变量代表一个有名字的、具有特定属性的一个存储单元。
变量用来存放数据,也就是存放变量的值。
变量必须先定义,后使用。
变量定义的本质是按照变量的数据类型给便变量分配一定的存储空间,格式如下
这里暂时不用关心存储类别,在大多数使用情况下是不指明的,默认缺省为auto类别。
类型说明符是整型、浮点型或字符型的说明符,如int、 double等 。
相同类型的各个变量,可以在一行语句中定义。各变量间用逗号隔开,语句末尾以分号表示结束。
int a,b; auto int a,b;
float c; auto float c;
unsigned int Ua,Ub; = auto unsigned int Ua,Ub;
char c1,c2,c3; auto char c1,c2,c3;
变量的赋值
变量只有通过赋值的方式才能使变量的第三要素(变量的值)有意义。
变量赋值需要使用赋值运算“=”。
变量的赋值,有两种方式,一是:先定义后赋值,二是:定义的同时进行赋值。
●对一个变量赋值之后,该值被存储在分配给该变量的内存空间中。
●不允许对多个未定义的同类型变量连续初始化,如上图所示。
●初始化时一般应使“=”右边表达式的数据类型和“=”左边变量的类型保持一致,如不一致,系统会进行自动赋值转换。
●只定义未赋值或未初始化的变量,其值是由定义时所使用的存储类型决定的。不同编译器情一
况是不同的.有些编译器下其值是未知的。
常变量
常变量是一种特殊的变量。变量在定义时,在类型说明符前加const说明符,表示该变量是一个
常变量。常变量同样具有变量的三要素:变量名、存储空间和变量值(初值)。特别的是常变量,
必须在定义的同时赋值。并且在程序运行过程中,其值不能改变,体现出常量的性质。
常变量的这种特性适用于某些经常用到的常数数值。如圆周率π。
二者区别 :内存分配与否:define是宏定义,程序在预处理阶段将用define定义的内容进行了替换。系统不为它分配内存。const定义的常量,在程序运行时在常量表中,系统为它分配内存。
编译时类型检查与否: define定 义的常量,预处理时只是直接进行了替换。所以编译时不能进行数据类型检验。const定义的常变量,在编译时进行严格的类型检验,可以避免出错。
字符串常量
字符串常量是用双引号括起来的字符序列,字符串常量是不可被修改的。
"hello world" "542" "a" "123abc\n"
字符串常量在内存中的存放形式是连续存放字符的ASCII码值,并且在最末尾加一个结束标志'\0'字符。'\0' 在ASCII码表也是一个字符,其值为0。.
注意:字符串“a”和字符‘a’是不一样的。
字符串函数
C中有大量操作字符串的函数。注意:需要包含头文件<string.h>
strlen(s1); | 返回字符串s1的长度(不含'\0') |
strcmp(s1,s2); | 如果s1和s2相同,则返回0;如果s1<s2,则返回小于0;如果s1>s2,则返回大于0. |
使用printf()函数可以很方便地输出一个字符串常量