C语言详解

您所在的位置:网站首页 c语言有效标识符有哪些 C语言详解

C语言详解

2024-07-09 05:07| 来源: 网络整理| 查看: 265

原帖地址:http://www.cnblogs.com/jcsu/articles/1317826.html

一、基本数据类型 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'、'$'

****

字符常量包含一个或多个字符,周围用单引号围起来。例如:

              'a'   ‘XY’    ‘0’

  1 #include   2   3 void main()   4 {   5         char c = 'abc';  //这里只能把字符'c'接收进去,注意编译时候的警告 ,这个应该和具体的机器有关,x86是小端存储的,ppc是大端的,

//ppc中应该是把a接收进去   6         printf("%c /n" ,c);   7 }

编译:

testnum.c:5:11: warning: multi-character character constant   //多字符的字符常量 testnum.c: In function ‘main’: testnum.c:5: warning: overflow in implicit constant conversion

 

****

(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) 以下程序的输出结果是多少?

  1 #include   2 void main()   3 {   4         unsigned short x = 100000;    //这条语句在编译的时候会有警告,大整数被隐式转换成无符号类型   5         unsigned int y = 100000;   6         printf("hex :%x %X/n dec:%d %d /n" ,x ,y ,x ,y);   7 } 编译: testnum.c: In function ‘main’: testnum.c:4: warning: large integer implicitly truncated to unsigned type 结果:

hex : 86a0   186A0  dec: 34464   100000

注解 :unsigned short占两个字节,编译器对二进制表示截取低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;   //以数字0开头的表示是八进制,编译不通过

编译: error: invalid digit "9" in octal constant 二、标识符 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;等。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3