一:C语言的描述 1.字符是C语言的最基本的元素 2.标识符 只能是由字母、数字、下划线组成的字符串,并且第一个字符必须是字母或者下划线。 在标识符中,大小写是有区别的; 标识符不能与关键字同名,也不能与系统预先定义的标准标识符同名。 3.注释符 //和 /* ....*/ 二:数据类型 1. 常量:常量在程序执行过程中,其值不发生变化。 a、符号常量: #define PI 3.14 main() { float aera; aera=10*10*PI; } 符号常量用大写,变量名用小写。PI是一个标识符代表一个常量,成为符号常量,他的值是不会改变的,也不能被赋值,比如:PI=3.1415;这是错误的。 b、const类型修饰符 Const类型修饰符必须放在它所修饰的类型名之前,用const修饰的标识符为常量。 比如: Const float PI=3.14; 或者 float const PI=3.14; 2.变量:一个变量必须有一个名字(变量名),在内存中占据一定的存储单元,在该单元中存放着变量的值。变量名在程序运行中是不会改变的,而变量值是变化的。变量名是以各种标识符。先定义,后使用 3.整型 int 2个字节 Short int 2个字节 Long int 4个字节 Unsigned interface 2个字节 无符号整型变量 Unsigned short 2个字节 Unsigned long 4 个字节 4.实型数据(又称为浮点型) a、十进制表示形式: 比如:0.0 .25 5.789 0.13 5.0 300. -267.8230 b、指数形式:加阶码标识“e”或者“E”,比如: 2.1E5(2.1*10的5次方),3.7E-2(3.7*10的-2次方)。 以下是非法的实数: 345,E7,-5,53.-E3,2.7E c、单精度float,占4个字节,只能提供7位有效数字。 d、双精度double 占8个字节,提供16位的有效数字。 e、实型常量不分单精度和双精度。一个实型常量可以赋给一个float或double型变量,根据变量的类型截取实型常量中相应的有效位数字 #include<stdio.h> void main() { float a; double b; a=54321.54123; b=54321.12345612345678; printf("a=%f\nb=%f\n",a,b); } b是双精度的,小数后最多保留6位,其余部分四舍五入。所以运行结果显示的b的最后一位是7而不是6.a是单精度浮点型,有效位数是7位,整数占了5位,小数54之后的2969均是无效数字。 5.字符型数据之字符常量 (1)字符常量是字符集(ASCII码)中的字符 字符常量都是用单引号括起来的一个字符。不能用双引号等。比如:‘a’‘=’。 数字被定义成字符型之后就不再是原来的数值了。‘5’是字符常量,而5是整型常量。而且,只要是单引号引起来的都是一个字符。‘ABCD’是一个字符 #include<stdio.h> void main() { int a='5'; int b=97; printf("a=%d\nb=%c\n",a,b); } 很明显a的结果是整型而b 的结果是字符型。A=’5’,现在的5是字符,在ASCII中字符‘5’所代表的十进制ASCII码正好是数字53,而十进制ASCII数字97正好代表的是字符a。 为什么a会是53呢,而b却成了a呢? 关键就是想要输出的类型不同了,a=%db=%c (2)转义字符 转义字符具有特定的意义,不同于其它字符。常用的转义字符如下; \n 换行 \0 空字符 通常用于字符串结束标志 ,需要注意的是,这儿的0是数字零 而不是字母o . \r 回车(不换行) (1)字符变量用来存放字符常量。6.字符型数据之字符变量 定义:char a; (2) C语言中允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时既可以把整型按字符数据输出,也可以把字符按整型数据输出。比如; #include<stdio.h> void main() { char a,b; //定义字符类型变量a和b a='x'; //把字符‘x’赋给a,此时a的整型值为字符‘x’所对应的值,即120 b='y'; //把字符'y' 赋给b,此时b的整型值为121 a=a-32; //此时的a的值为88,而对应的字符是大写的X b=b-32; //此时的b的值为89,对应的字符是大写的Y printf("%c,%c\n%d,%d\n",a,b,a,b); //分别用字符和整型输出a和b 的值 } (3) 从上述程序中也可以看出,字符是可以参与运算的,比如:’a’=’A’+32。 7.字符型数据之字符串常量 (1)字符串常量是由一对双引号括起来的字符序列。比如: ”china”, ”&12.5654” (2)定义: char string=”My name is zhaoyuqiang”; (3)字符与字符串的区别: a、‘a’是字符,“a”是字符串。 b、“a”=’a’+’\0’.。 意思是说,字符串就是多个字符合起来,然后最后加一个空格符。 也就是字符串常量占的内存空间字节数等于字符串中字符位数加1,增加的那一个字符就是存放空字符‘\0’的。 c、char a=’a’,b; b=a; //把一个字符常量赋给了一个字符变量,这是完全可以的。 char string=“asdfg”,b; b=a; //把一个字符串常量赋给了一个字符变量,这是错误的。 8.枚举类型 (1)枚举类型:这种类型变量的取值只能限于事前已经一一列举出来的值的范围。 (2)用关键字enum定义枚举类型。 enum weekday {sun,mon,tue,wed,thu,fri,sat}; weekday是枚举类型名,可以用于定义变量,比如:enum weekday week1,week2;定义了两个枚举变量,这两个变量只能取sun到sat这个七个值之一,比如:week1=wed; 其中sun,mon....称为枚举元素,这是常量。 (3)枚举元素在C编辑器中,按定义时的排列顺序取值0,1,2,3,.........。比如: week1=wed; printf(“%d”,week1); 此时输出的结果是:3,因为wed在weekday中下标是3。 (4)枚举元素既然是常量,就不应该给它赋值。比如sun=1,mon=2;这是错误的。 但是在定义的时候可以进行初始化。比如: Enum weekday {sun=7,mon=1,tue,wed,thu,fri,sat}; 此时,tue、wed....的值从mon的值顺序加1,如,tue=2。