来源:蜘蛛抓取(WebSpider)
时间:2015-01-18 06:26
标签:
c语言入门
当前位置 &
C语言程序设计(第2章 数据类型、运算符和表达式)
2.1 C语言的数据类型2.2 常量与变量&&& 2.2.1 标识符命名&&& 2.2.2 常量&&& 2.2.3 变量2.3 整型数据&&& 2.3.1 整型常量&&& 2.3.2 整型变量2.4 实型数据&&& 2.4.1 实型常量&&& 2.4.2 实型变量2.5 字符型数据&&& 2.5.1 字符常量&&& 2.5.2 字符串常量&&&&2.5.3 转义字符&&&& 2.5.4 符号常量&&& 2.5.5 字符变量2.6 运算符&&&&& 2.6.1 算术运算符&&& 2.6.2 自增和自减&&& 2.6.3 关系和逻辑运算符2.1 C语言的数据类型C语言有五种基本数据类型:字符、整型、单精度实型、双精度实型和空类型。尽管这几种类型数据的长度和范围随处理器的类型和C语言编译程序的实现而异,但以b i t为例,整数与C P U字长相等,一个字符通常为一个字节,浮点值的确切格式则根据实现而定。对于多数微机,表2 - 1给出了五种数据的长度和范围。表2-1 基本类型的字长和范围
char(字符型)
float(单精度型)
约精确到6位数
double(双精度型)
约精确到12位数
void (空值)
无值表中的长度和范围的取值是假定CPU的字长为16 bit。C语言还提供了几种聚合类型(aggregate types),包括数组、指针、结构、共用体(联合)、位域和枚举。这些复杂类型在以后的章节中讨论。除void类型外,基本类型的前面可以有各种修饰符。修饰符用来改变基本类型的意义,以便更准确地适应各种情况的需求。修饰符如下:• signed(有符号)。• unsigned(无符号)。• long(长型符)。• short(短型符)。修饰符signed、short、long和unsigned适用于字符和整数两种基本类型,而long还可用于double(注重,由于long float与double意思相同,所以ANSI标准删除了多余的long float)。表2 - 2给出所有根据ANSI标准而组合的类型、字宽和范围。切记,在计算机字长大于1 6位的系统中, short int与signed char可能不等。表2-2 ANSI标准中的数据类型
char(字符型
unsigned char(无符号字符 &&
signed char(有符号字符型)
unsigned int(无符号整型)
signed int(有符号整型)
同 int&&&&&&&&&
short(短整型)
8&&&&&&&&&&&&
unsigned short int(无符号短整型)
signed short int(有符号短整型)&&&&&&&
同short int
long int(长整型)
signed long int(有符号长整型)
unsigned long int(无符号长整型)
32&&&&&&&&&&
float(单精度型)
约精确到6位数
double(双精度型)
约精确到12位数*表中的长度和范围的取值是假定CPU的字长为16 bit。&&& 因为整数的缺省定义是有符号数,所以singed这一用法是多余的,但仍答应使用。某些实现答应将unsigned用于浮点型,如unsigned double。但这一用法降低了程序的可移植性,故建议一般不要采用。为了使用方便,C编译程序答应使用整型的简写形式:• short int 简写为short。• long int 简写为long。• unsigned short int 简写为unsigned short。• unsigned int 简写为unsigned。• unsigned long int 简写为unsigned long。即,int可缺省。2.2 常量与变量2.2.1 标识符命名在C语言中,标识符是对变量、函数标号和其它各种用户定义对象的命名。标识符的长度可以是一个或多个字符。绝大多数情况下,标识符的第一个字符必须是字母或下划线,随后的字符必须是字母、数字或下划线(某些C语言编译器可能不答应下划线作为标识符的起始字符)。下面是一些正确或错误标识符命名的实例。正确形式&&&&&&& 错误形式count&&&&&&&&&&& 2counttest23&&&&&&&&& hi!therehigh_balance&&& high..balanceANSI标准规定,标识符可以为任意长度,但外部名必须至少能由前8个字符唯一地区分。这里外部名指的是在链接过程中所涉及的标识符,其中包括文件间共享的函数名和全局变量名。这是因为对某些仅能识别前8个字符的编译程序而言,下面的外部名将被当作同一个标识符处理。counters&&&&&& counters1&&&& counters2ANSI标准还规定内部名必须至少能由前31个字符唯一地区分。内部名指的是仅出现于定义该标识符的文件中的那些标识符。C语言中的字母是有大小写区别的,因此count Count COUNT是三个不同的标识符。标识符不能和C语言的要害字相同,也不能和用户已编制的函数或C语言库函数同名。2.2.2 常量C语言中的常量是不接受程序修改的固定值,常量可为任意数据类型,如下例所示:数据类型&&&&&&&&&&&& 常量举例char&&&&&&&&&&&&&&& 'a'、'\n'、'9'int&&&&&&&&&&&&&&&& 21、123 、2100 、-234long int&&&&&&&&&&& 35000、 -34short int&&&&&&&&&& 10、-12、90unsigned int&&&&&&& 1、40000float&&&&&&&&&&&&&& 123.23、4.34e-3double&&&&&&&&&&&&& 123.23、、-0.9876234&&&& C语言还支持另一种预定义数据类型的常量,这就是串。所有串常量括在双撇号之间,例如"This is a test"。切记,不要把字符和串相混淆,单个字符常量是由单撇号括起来的,如'a'。2.2.3 变量&&& 其值可以改变的量称为变量。一个变量应该有一个名字(标识符),在内存中占据一定的存储单元,在该存储单元中存放变量的值。请注重区分变量名和变量值这两个不同的概念。所有的C变量必须在使用之前定义。定义变量的一般形式是:type variable_这里的type必须是有效的C数据类型,variable_list(变量表)可以由一个或多个由逗号分隔的多个标识符名构成。下面给出一些定义的范例。int i, j,double balance, profit,注重C语言中变量名与其类型无关。2.3 整型数据2.3.1 整型常量整型常量及整常数。它可以是十进制、八进制、十六进制数字表示的整数值。十进制常数的形式是:digits这里digits可以是从0到9的一个或多个十进制数位,第一位不能是0。八进制常数的形式是:&&& 0digits&&& 在此,digits可以是一个或多个八进制数( 0~7之间),起始0是必须的引导符。十六进制常数是下述形式:0xhdigits0Xhdigits&&& 这里hdigits可以是一个或多个十六进制数(从0~9的数字,并从“ a”~“ f”的字母)。&&& 引导符0是必须有的,X即字母可用大写或小写。注重,空白字符不可出现在整数数字之间。表2 - 3列出了整常数的形式。表
2-3 整常数的例子十进制&&&& 八进制&&&&&&&&&&&&&& 十六进制10&&&&&&& && 012&&&&&&&&&&&&&&&& 0Xa或0XA132&&&&& &&& 0204&&&&&&&&&&&&&&&&0X8 432179& &&&&& 076663&&&&&&&&& &&& 0X7db3或0X7DB3&&& 整常数在不加非凡说明时总是正值。假如需要的是负值,则负号“ -”必须放置于常数表达式的前面。每个常数依其值要给出一种类型。当整常数应用于一表达式时,或出现有负号时,常数类型自动执行相应的转换,十进制常数可等价于带符号的整型或长整型,这取决于所需的常数的尺寸。&&&&八进制和十六进制常数可对应整型、无符号整型、长整型或无符号长整型,具体类型也取决于常数的大小。假如常数可用整型表示,则使用整型。假如常数值大于一个整型所能表示的最大值,但又小于整型位数所能表示的最大数,则使用无符号整型。同理,假如一个常数比无符号整型所表示的值还大,则它为长整型。假如需要,当然也可用无符号长整型。&&& 在一个常数后面加一个字母l或L,则认为是长整型。如10L、79L、012L、0115L、0XAL、0x4fL等。2.3.2 整型变量&&& 前面已提到, C规定在程序中所有用到的变量都必须在程序中指定其类型,即“定义”。&&& 这是和BASIC、FORTRAN不同的,而与Pascal相似。[例2 - 1 ]main( ){&&& int a,b,c,d; / *指定a , b , c , d 为整型变量* /&&& / *指定u为无符号整型变量* /&&& a=12; b=-24; u=10;&&& c=a+u; d=b+u;&&& printf("a+u=%d, b+u=%d\n",c,d);}运行结果为:a+u=22, b+u=-14可以看到不同类型的整型数据可以进行算术运算。在本例中是i n t型数据与unsingned int型数据进行相加减运算。2.4 实型数据2.4.1 实型常量&&& 实型常量又称浮点常量,是一个十进制表示的符号实数。符号实数的值包括整数部分、尾数部分和指数部分。实型常量的形式如下:&&& [digits] [.digits] [ E|e[ + | - ] digits]&&& 在此digits是一位或多位十进制数字(从0~9)。E(也可用e)是指数符号。小数点之前是整数部分,小数点之后是尾数部分,它们是可省略的。小数点在没有尾数时可省略。&&& 指数部分用E或e开头,幂指数可以为负,当没有符号时视为正指数的基数为1 0,如1.575E10表示为:1.575×101 0。在实型常量中不得出现任何空白符号。&&& 在不加说明的情况下,实型常量为正值。假如表示负值,需要在常量前使用负号。&&& 下面是一些实型常量的示例:&&& 15.75, 1.575E10, 1575e-2, -0.0025, -2.5e-3, 25E-4&&& 所有的实型常量均视为双精度类型。&&& 实型常量的整数部分为0时可以省略,如下形式是答应的:&&& .57, .0075e2, -.125, -.175E-2 。&&& 注重字母E或e之前必须有数字,且E或e后面指数必须为整数,如e 3、2 . 1 e 3 . 5、. e 3、e等都是不合法的指数形式。2.4.2 实型变量&&& 实型变量分为单精度( f l o a t型)和双精度( d o u b l e型)。对每一个实型变量都应再使用前加以定义。如:float x,y; / *指定x , y为单精度实数* /double z; / *指定z为双精度实数* /&&& 在一般系统中,一个float型数据在内存中占4个字节( 3 2位)一个double型数据占8个字节(6 4位)。单精度实数提供7位有效数字,双精度提供1 5 ~ 1 6位有效数字,数值的范围随机器系统而异。&&& 值得注重的是,实型常量是double型,当把一个实型常量赋给一个float型变量时,系统会截取相应的有效位数。例如a = ;由于float型变量只能接收7位有效数字,因此最后两位小数不起作用。假如将a改为double型,则能全部接收上述9位数字并存储在变量a中。2.5 字符型数据2.5.1 字符常量&&& 字符常量是指用一对单引号括起来的一个字符。如‘ a’,‘9’,‘!’。字符常量中的单引号只起定界作用并不表示字符本身。单引号中的字符不能是单引号(’)和反斜杠( \),它们特有的表示法在转义字符中介绍。&&& 在C语言中,字符是按其所对应的A S C I I码值来存储的,一个字符占一个字节。例如:&&& 字符&&&&&&&&& ASCII码值(十进制)&&&& !&&&&&&&&&&&&&&& 3 3&&&& 0&&&&&&&&&&&&&&& 4 8&&&& 1&&&&&&&&&&&&&&& 4 9&&&& 9&&&&&&&&&&&&&&& 5 7&&&& A&&&&&&&&&&&&&&& 6 5&&&& B&&&&&&&&&&&&&&&&6 6&&&& a&&&&&&&&&&&&&&& 9 7&&&& b&&&&&&&&&&&&&&&&9 8注重字符'9'和数字9的区别,前者是字符常量,后者是整型常量,它们的含义和在计算机中的存储方式都截然不同。由于C语言中字符常量是按整数( s h o r t型)存储的,所以字符常量可以像整数一样在程序中参与相关的运算。例如:'a'-32 ; /* 执行结果97-32 = 65 * /'A' + 32; /* 执行结果65+32 = 97 * /'9'-9; /* 执行结果57-9 = 48 * /2.5.2 字符串常量&&&& 字符串常量是指用一对双引号括起来的一串字符。双引号只起定界作用,双引号括起的字符串中不能是双引号( ")和反斜杠(\),它们特有的表示法在转义字符中介绍。例如:"China" ,"C program", "YES&NO", "", "A" 等。&&&& C语言中,字符串常量在内存中存储时,系统自动在字符串的末尾加一个“串结束标志”,即ASCII码值为0的字符NULL,常用\0表示。因此在程序中,长度为n个字符的字符串常量,在内存中占有n + 1个字节的存储空间。&&& 例如,字符串China有5个字符,作为字符串常量" China "存储于内存中时,共占6个字节,系统自动在后面加上NU LL字符,其存储形式为:
NULL要非凡注重字符串与字符串常量的区别,除了表示形式不同外,其存储性质也不相同,字符'A'只占1个字节,而字符串常量"A"占2个字节。2.5.3 转义字符&&& 转义字符是C语言中表示字符的一种非凡形式。通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单撇号( '),用于表示字符串常量的双撇号( ")和反斜杠( \)等。转义字符用反斜杠\后面跟一个字符或一个八进制或十六进制数表示。表2 - 4给出了C语言中常用的转义字符。表2-4 转义字符
ASCII码值(十进制)
水平制表(HT)
垂直制表(VT)
单引号字符
双引号字符
空字符(NULL)
三位八进制
二位十六进制&&& 字符常量中使用单引号和反斜杠以及字符常量中使用双引号和反斜杠时,都必须使用转义字符表示,即在这些字符前加上反斜杠。&&& 在C程序中使用转义字符\ d d d或者\ x h h可以方便灵活地表示任意字符。\ d d d为斜杠后面跟三位八进制数,该三位八进制数的值即为对应的八进制A S C I
I码值。\ x后面跟两位十六进制数,该两位十六进制数为对应字符的十六进制A S C I I码值。&&& 使用转义字符时需要注重以下问题:1) 转义字符中只能使用小写字母,每个转义字符只能看作一个字符。2) \v 垂直制表和\f 换页符对屏幕没有任何影响,但会影响打印机执行响应操作。3) 在C程序中,使用不可打印字符时,通常用转义字符表示。2.5.4 符号常量&&& C语言答应将程序中的常量定义为一个标识符,称为符号常量。符号常量一般使用大写英文字母表示,以区别于一般用小写字母表示的变量。符号常量在使用前必须先定义,定义的形式是:#define &符号常量名& &常量&例如:#define PI& 3.1415926#define TRUE&& 1#definr FALSE& 0#define STAR& '*'&&& 这里定义PI、TRUE、FLASE、STAR为符号常量,其值分别为3.,0,'*'。&&& #define是C语言的预处理命令,它表示经定义的符号常量在程序运行前将由其对应的常量替换。&&& 定义符号常量的目的是为了提高程序的可读性,便于程序的调试和修改。因此在定义符号常量名时,应使其尽可能地表达它所代表的常量的含义,例如前面所定义的符号常量名PI(p),表示圆周率3.1415926。此外,若要对一个程序中多次使用的符号常量的值进行修改,只须对预处理命令中定义的常量值进行修改即可。2.5.5 字符变量字符变量用来存放字符常量,注重只能存放一个字符,不要以为在一个字符变量中可以放字符串。字符变量的定义形式如下:char c1, c2;它表示c 1和c 2为字符变量,各放一个字符。因此可以用下面语句对c 1、c 2赋值:c1 = 'a'; c2 = 'b';[例2 - 2 ]main( ){&&& char c1,c2;&&& c1 = 97; c2 = 98 ;&&& printf("%c %c",c1,c2);}c1、c2被指定为字符变量。但在第3行中,将整数9 7和9 8分别赋给c 1和c 2,它的作用相当于以下两个赋值语句:c1 = 'a' ; c2 = 'b' ;因为'a'和'b'的ASCII码为97和98。第4行将输出两个字符。"%c"是输出字符的格式。程序输出:a b[例2 - 3 ]main( ){ &&& char c1,c2;&&& c1 = 'a';c2 = 'b';&&& c1 = c1 - 32; c2 =c2 - 32;&&& printf( "%c& %c" , c1,c2);}运行结果为:A B它的作用是将两个小写字母转换为大写字母。因为'a'的ASCII码为97,而'A'为65,'b'为98,'B'为66。从ASCII代码表中可以看到每一个小写字母比大写字母的ASCII码大32。即'a'='A' + 32。2.6 运算符&&& C语言的内部运算符很丰富,运算符是告诉编译程序执行特定算术或逻辑操作的符号。C语言有三大运算符:算术、关系与逻辑、位操作。另外, C还有一些非凡的运算符,用于完成一些非凡的任务。2.6.1 算术运算符&&& 表2 - 5列出了C语言中答应的算术运算符。在C语言中,运算符“ +”、“-”、“*”和“ /”的用法与大多数计算机语言的相同,几乎可用于所有C语言内定义的数据类型。当“ /”被用于整数或字符时,结果取整。例如,在整数除法中, 1 0 / 3 = 3。&&& 一元减法的实际效果等于用- 1乘单个操作数,即任何数值前放置减号将改变其符号。模运算符“%”在C语言中也同它在其它语言中的用法相同。切记,模运算取整数除法的余数,所以“%”不能用于float和double类型。表2-5 算术运算符
减法,也是一元减法
下面是说明%用法的程序段。int x,y;x = 10;y = 3;printf("%d",x/y); /* 显示3 */printf("%d",x%y) ; /* 显示1 ,整数除法的余数* /x = 1 ;y = 2 ;printf("%d,%d",x/y,x%y) ; /* 显示0,1 */最后一行打印一个0和一个1,因为1 / 2整除时为0,余数为1,故1 % 2取余数1。2.6.2 自增和自减&&& C语言中有两个很有用的运算符,通常在其它计算机语言中是找不到它们的—自增和自减运算符, + +和- -。运算符“ + +”是操作数加1,而“- -”是操作数减1,换句话说:x = x + 1 ; 同+ +&& x = x - 1 ; 同- -自增和自减运算符可用在操作数之前,也可放在其后,例如: x = x + 1;可写成+ + x;或x + +;但在表达式中这两种用法是有区别的。自增或自减运算符在操作数之前, C语言在引用操作数之前就先执行加1或减1操作;运算符在操作数之后, C语言就先引用操作数的值,而后再进行加1或减1操作。请看下例:x = 1 0;y = ++x;此时,y = 11。假如程序改为:x = 10 ;y = x++ ;则y = 10。在这两种情况下, x都被置为11,但区别在于设置的时刻,这种对自增和自减发生时刻的控制是非常有用的。&&& 在大多数C编译程序中,为自增和自减操作生成的程序代码比等价的赋值语句生成的代码要快得多,所以尽可能采用加1或减1运算符是一种好的选择。下面是算术运算符的优先级:最高&& ++、--&&&&&&&-(一元减)&&&&&&&*、/、%最低&& +、-&&& 编译程序对同级运算符按从左到右的顺序进行计算。当然,括号可改变计算顺序。C语言处理括号的方法与几乎所有的计算机语言相同:强迫某个运算或某组运算的优先级升高。2.6.3 关系和逻辑运算符&&& 关系运算符中的“关系”二字指的是一个值与另一个值之间的关系,逻辑运算符中的“逻辑”二字指的是连接关系的方式。因为关系和逻辑运算符常在一起使用,所以将它们放在一起讨论。&&& 关系和逻辑运算符概念中的要害是True(真)和Flase(假)。C语言中,非0为True,0为Flase。使用关系或逻辑运算符的表达式对Flase和Ture分别返回值0或1 (见表2 - 6 )。表2-6 关系和逻辑运算符
关系运算符
关系运算符
小于或等于
逻辑运算符
非表2 - 6给出于关系和逻辑运算符,下面用1和0给出逻辑真值表。关系和逻辑运算符的优先级比算术运算符低,即像表达式10&1+12的计算可以假定是对表达式10&( 1 + 12)的计算,当然,该表达式的结果为Flase。在一个表达式中答应运算的组合。例如:10&5&&!(10&9)||3&=4
视频教程列表
文章教程搜索
输入您的搜索字词
提交搜索表单
C语言程序设计推荐教程
tel:<font color="#FF30058C语言中printf数值前面加\是什么,求大神发个完整的\加数字代表什么的表给我,谢谢_百度知道
C语言中printf数值前面加\是什么,求大神发个完整的\加数字代表什么的表给我,谢谢
指printf(&\70&);ASCII码加'\70'八进制70ASCII码<img class="word-replace" src="/api/getdecpic?picenc=0ad换八进制56应数字8指格式符:%c &字符 &&%d &十进制整数 &%e &浮点数指数e形式 &%s &字符串&%E &浮点数指数E形式 &%u &符号十进制整数&%f &浮点数数点形式 &%g &输%f与%e较短者&%o &符号八进制整数 &%G &输%F与%E较短者&%x &符号十六进制整数0~f表示 &%X &符号十六进制整数0~F表示&%l &整型加douxX前%ld(注意%l英文字母l数字1) int printf(const char *format,[argument]);& format 参数输格式定义格式:&& %[flags][width][.perc] [F|N|h|l]type&& 规定数据输式具体:&& 1.type 含义:&& d 符号10进制整数&& i 符号10进制整数&& o 符号8进制整数&& u 符号10进制整数&& x 符号16进制数字并写abcdef表示& X 符号16进制数字并写ABCDEF表示& F/f 浮点数&& E/e 用科表示格式浮点数&& g 使用%f%e表示总位数表示短表示浮点数 G 同g格式表示指数&& c 单字符&& s 字符串&& % 显示百号本身&& p 显示指针near指针表示:XXXX&& far 指针表示:XXXX:YYYY&& n 相连参量应指针其存放已写字符数&& 2.flags 规定输格式取值含义:&&
右齐左边填充0空格&& - 左齐右边填充空格&& + 数字前增加符号 + 或 -& 空格 负数显示符号&& # type=c,s,d,i,u没影响&& type=o,x,X别数值前增加'0',&0x&,&0X&& type=e,E,f总使用数点&& type=g,G除数值0外总显示数点 3.width 用于控制显示数值宽度取值含义n(n=1,2,3...) 宽度至少n位够空格填充&& 0n(n=1,2,3...) 宽度至少n位够左边0填充 * 格& 式列表参数width 4.prec 用于控制数点面位数取值含义:&&
按缺省精度显示&& 0 type=d,i,o,u,x没影响&& type=e,E,f显示数点&& n(n=1,2,3...) type=e,E,f表示数位数&& type=其表示显示宽度 .*&& 格式列表参数width&& 5.F|N|h|l 表示指针否远指针或整数否整数&& F 远指针&& n 近指针&& h短整数或单精度浮点数&& l 整数或双精度浮点数& 1.般格式& printf(格式控制输表列)& 例:printf(&i=%d,ch=%c\n&,i,ch);& 说明:& (1)格式控制用双撇号括起字符串称转换控制字符串包括两种信息:& ①格式说明:由%格式字符组作用输数据转换指定格式输& ②普通字符即需要原输字符& (2)输表列需要输些数据表达式& (3)printf函数般形式表示& printf(参数1参数2……参数n)& 功能参数2~参数n按参数1给定格式输& 2.格式字符(9种)& (1)d(或i)格式符用输十进制整数几种用:& ①%d按整型数据实际度输& ②%mdm指定输字段宽度数据位数于m则左端补空格若于m则按实际位数输& ③%ld(%mld )输整型数据& 例:long a=123456;& printf(&%ld&,a);& (2)o格式符八进制数形式输整数格式:%o%mo,%lo%mlo都& (3)x(或X)格式符十六进制数形式输整数格式:%x%mx,%lx%mlx都& (4)u格式符用输unsigned型数据即符号数十进制数形式输格式:%u%mu,%lu都& 参见:li4-3.c/*符号数据输*/& (5)c格式符用输字符格式:%c%mc都& (6)s格式符用输字符串格式:%s%ms,%-ms%m.ns%-m.ns都& 参见:li4-5.c /*字符串输*/& (7)f格式符用输实数(包括单、双精度)数形式输格式:%f%m.nf%-m.nf都& 注意:单精度实数效位数般7位双精度16位& 参见:li4-6.c/*输单精度实数效位数*/& li4-7.c/*输双精度实数效位数*/& li4-8.c/*输实数指定数位数*/& (8)e(或E)格式符指数形式输实数格式:%e%m.ne%-m.ne都& (9)g(或G)格式符用输实数根据数值自选f格式或e格式(选择输占宽度较种)& 3.说明& (1)除X、E、G(用写字母表示)外其格式字符必须用写字母;& (2)格式控制字符串内包含转义字符;& (3)想输字符%则应该格式控制字符串用连续两%表示:& printf(&%f%%&,1.0/3);& (4)格式字符表参见表& 表4.1 printf格式字符& 格式字符 说 明&& d,i 带符号十进制形式输整数(数输符号)&& o 八进制符号形式输整数(输前导符0)&& x,X 十六进制符号形式输整数(输前导符0x),用x则输十六进制数a~f写形式输用X则写字母输&& u 符号十进制形式输整数&& c 字符形式输输字符&& s 输字符串&& f 数形式输单、双精度数隐含输6位数&& e,E 指数形式输实数&& g,G 选用%f或%e格式输宽度较短种格式输意义0&& 表4.2 printf附加格式说明字符& 字符& 说明& 字母l& 用于整型整数加格式符d、o、x、u前面& m(代表整数)& 数据宽度& n(代表整数)& 实数表示输n位数;字符串表示截取字符数& -& 输数字或字符域内向左靠&另外送份我照书敲格式符使用案例习愉快少
谢谢,但是我想问的是:比如我在printf函数中打\2,跳出来的是个笑脸,\后面加数字,可以表示好多符号,想请大神帮帮忙,给我一份这方面的资料,谢谢
很抱歉,我手上并无这类的资料,网上搜索了,并未搜索到。#include&&iostream&using&namespace&int&main(void){ printf(&1&&\1\n&); printf(&2&&\2\n&); printf(&3&&\3\n&); printf(&4&&\4\n&); printf(&5&&\5\n&); printf(&6&&\6\n&); printf(&7&&\7\n&); printf(&8&&\8\n&); printf(&9&&\9\n&); printf(&10&&\10\n&); printf(&12&&\12\n&); printf(&13&&\13\n&); printf(&14&&\14\n&); printf(&15&&\15\n&); printf(&16&&\16\n&); printf(&17&&\17\n&); printf(&18&&\18\n&); printf(&19&&\19\n&); printf(&20&&\20\n&); printf(&21&&\21\n&); printf(&22&&\22\n&); printf(&23&&\23\n&); printf(&24&&\24\n&); printf(&70&&\70&); return&0;}按照这份代码来看,有的数字并不对应特殊符号。我只能告诉你,理论上来说,\ddd就是\加数字,表示的是ASCII码八进制为这个数字的符号。如'\70',就是八进制为70,即十进制为56的符号,查ASCII码表可得到ASCII码为56的符号是8;所以输出'\70'输出字符8;而'\12'就是八进制为12,即十进制为10的符号,查ASCII码表可得到ASCII码为10的符号是换行符,所以你运行这个程序后会发现12后面确实是输出了换行符!希望对你有帮助,如果你认为必要的话,可以选择把问题留在这里等待更正确的答案。
其他类似问题
按默认排序
其他3条回答
\\ 反斜杠\a 警告\b 退格\f 换页\n 换行\r 车\t 跳格\v 垂直跳格\ddd ddd
1、2 或 3 位八进制数字\xuu
uu 十六进制数字些转义序列作由八进制数指定具数字值字节显示
转义字符是C语言中表示字符的一种特殊形式。通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单撇号( '),用于表示字符串常量的双撇号( &)和反斜杠( \)等。转义字符用反斜杠\后面跟一个字符或一个八进制或十六进制数表示。转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) 008 \f 换页(FF) 012 \n 换行(LF) 010 \r 回车(CR) 013 \t 水平制表(HT) 009 \v 垂直制表(VT) 011 \\ 反斜杠 092 \? 问号字符 063 \' 单引号字符 039 \& 双引号字符 034 \0 空字符(NULL) 000 \ddd 任意字符 三位八进制 \xhh 任意字符 二位十六进制字符常量中使用单引号和反斜杠以及字符常量中使用双引号和反斜杠时,都必须使用转义字符表示,即在这些字符前加上反斜杠。 在C程序中使用转义字符\ d d d或者\ x h h可以方便灵活地表示任意字符。\ d d d为斜杠后面跟三位八进制数,该三位八进制数的值即为对应的八进制A S C I I码值。\ x后面跟两位十六进制数,该两位十六进制数为对应字符的十六进制A S C I I码值。
如果你是学c的书上应该有
printf的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁