c语言程序标识符分类,C语言 基本数据类型与标识符

http://www.cnblogs.com/alaigle/archive/2012/04/27/2473708.html

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)

72916431_1.gif

#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

}

72916431_1.gif

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.E4.            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.com    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

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;

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值