c语⾔程序标识符分类,C语⾔基本数据类型与标识符2012
⼀、基本数据类型
1. 基本数据类型的分类:
C语⾔中的三种基本数据类型是:整型、实型、字符型。每种类型⼜可以分为常量和变量。
整型常量:
(1) ⼗进制的整型常量:由数字0~9组成。如:0、10、365、-12等。
(2) ⼋进制的整型常量:以0开头,由数字0~7组成。如:0、010、0365、-012、011等。
(3) ⼗六进制的整型常量:以0x或0X开头,由数字0~9、a~z或A~Z组成。如:0x11、0Xffff、0xa5、-0XAC等。
注:C语⾔系统默认为基本整型常量。(关于“基本整型”,请参考下⾯的内容)
整型变量:
(1) 根据整数的最⾼位是否⽤作符号位,分为有符号(signed)整型和⽆符号(unsigned)整型。
(2) 根据整数在计算机内存中所占⽤的空间⼤⼩,分为短整型(short int或short)、基本整型(int)和长整型(long int或long)。
short x = 10; 等价于 signed short x = 10; 同时等价于 signed short int x = 10;
int age = 20; 等价于 signed int age = 20;
long z = 10000L; (加L后说明10000是⼀个长整型常量,⽽不是⼀个基本整型常量)
注:(1) C语⾔系统默认为有符号整数。
(2) unsigned和signed不能同时出现。
(3) short和long不能同时出现。
实型常量:
在C语⾔中,实型常量的两种表现形式:⼩数形式和指数形式。或者叫做⼩数点式和字母E(或e)式。
(1) ⼩数点式:
1. 有且仅有⼀个⼩数点
2. ⼩数点的左边和右边可以有⼀边没有数据,但不能同时没有数据
举例:3.14、0.1、10.、0.0、.0、-10.08
(2) 字母E(或e)式:
1. 有且仅有⼀个字母E(或e)
2. 两边都必须有数据
3. 左边可以是整数,也可以是⼩数
4. 右边只能是整数
举例:1e5、1.2E+4、3.0e-2、0e0、1.e0、.0e0
实型变量:分为单精度和双精度两种,单精度⽤float表⽰,双精度⽤double表⽰。
举例:
float  x = 1., y = .0, z = 1.2E+4;
double  salary, sum;
字符型常量:
字符型常量的两种表现形式:
(1) 由⼀对单引号括起来的单个字符:
举例:'A'、'#'、'x'、'$'
(2) 由⼀对单引号括起来的,⾥⾯是由反斜杠“\”引起的若⼲字符:
1. ⼀般转义字符,如:'\t'、'\"'、'\\'、'\t'、'\n''、'\''
2. “\”与其后的1~3位⼋进制数组成的⼋进制转义字符,如:'\123'、'\0'、'\61'、'\101'
3. “\x”与其后的1~2位⼗六进制数组成的⼗六进制转义字符,如:'\x41'、'\x61'、'\x7F'。注意:不能是⼤写的“\X”。字符型变量:
注:字符变量中存放的实际上是该字符的ASCII码,因为字符型数据都被处理成整型数据。
举例:
(1) char a = 'A'; 与 char a = 65; 是等价的。因为字符'A'在计算机中的形式是整型65。
(2)
#include
void main(void)
{
char ch='a';
int x=0x6463;
ch='a'+1;
printf("%d \n", ch); // 98
printf("%c \n", ch); // b
printf("%c \n", x); // c
printf("%d \n", x); // 25699
x=x>>8;
printf("%c \n", x); // d
printf("%d \n", x); // 100
}
2. 举例与注意事项:
(1) unsigned:为⽆符号类型,只能表⽰⼤于或等于0的数。
signed:为带符号类型,可以表⽰正数、负数和0。
(2) 32位机上,int与long的字长相同,均为4字节。
(3) 以下程序的输出结果是多少?
unsigned short x = 100000;
unsigned int  y = 100000;
printf("hex: %x %X \ndec: %d %d \n", x, y, x, y);
答案:34464。
注解:编译器对⼆进制表⽰截取低16位,相当于对65536求余(%),得34464。
(4) 解释以下字⾯值常量:
'a':char型字⾯值                    L'a':wchar_t型字⾯值
"a":字符串字⾯值                    L"a":宽字符串字⾯值
10:int型字⾯值                      10L:long型字⾯值
10u:unsigned型字⾯值          10uL:unsigned long型字⾯值
012:⼋进制表⽰的int型字⾯值    0xC:⼗六进制表⽰的int型字⾯值
3.14:为double型字⾯值          3.14f:为float型字⾯值
3.14L:为long double型字⾯值
-10.:为double型字⾯值            -10e-2:为double型字⾯值
-10u:unsigned int型字⾯值      -10:int型字⾯值
⾮法常量:3.14UL、1024f
(5) 以下两条语句有错的是:
int  month = 9, day = 7;
int  month = 09, day = 07;
(6) 以下哪些是⾮法的⼋进制整数:
0          066    023      081        80        0x100      0Xff      0101      1010      0011B      0011
-
80      -09    -080    -3.24    -3.1e1      -90.      -0.        -0.0        -.0        -23E0      -012348
(7) 以下哪些是⾮法的⼗六进制整数:
0x77      0XABC    0Xacd      0x001      oX34      oxfff      0XeffA      0101      101    0011B      X011 -x80      -09          -0x80      -3.24      -3.        -90.        -0.        -0.0      -.0      -23      -012349 (8) 以下哪些是合法常量:
1.234e04      1.234e0.4      1.234e+4      1.234e0      5E5.0      e-7        E-8      .4E0      1.8E
3.14E5.        3.E
4.            0.E1              .0E0            '\0'        '\010'          '\88'      '\101'
2L                1.2e-0        '\xxx'              '\x01'          '\xab'      '\Xabc'        '\x42'    '\X42'
⼆、标识符
1. 标识符的规则和分类
(1) 标识符的命名规则:
1)只能由字母、数字和下划线组成
2)第⼀个字符不能是数字
3)区分⼤⼩写,如:int与Int是两个不同的标识符。
4)尽量做到见名知义,如:int age = 10;
(2) 分类:
1)关键字。如:int、float、double、auto等。
2)预定义标识符。包括函数名和预处理命令名。如:printf、scanf、main、sin、include、define等。
3)⽤户标识符。不能使⽤关键字,可以使⽤预定义标识符。如:int printf = 0; int weight = 68;等。2. 举例
(1) 以下能⽤作⽤户标识符的是:
Main    _0    _int      sizeof    _1234_    int_2_      2_int_      _1_2
For    4d    WORD    Double    _8_    scanf    Void      born365    x-i-a-o
auto    Int    baidu    long    exe      .doc      Li_ming    6x    printf      3.14
PI      pi        int      _34bS      type    Float      CHAR    char      _main    If
c语言和c++区别
txt      REAL      _001      sin      turbo    VC++      include      scanf      define
注:是否是关键字请参考关键字表
(2) 以下合法的是:
int double = 3.14159;
char _;
bool catch-22;
int  0;
float  USS;
char 1_or_2 = '1';
float Float = 3.14f;
int car = 1024, auto = 2048;
int x = x;
std::cin >> int input_value;(C++内容)
double salary=wage=9999.99;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。