c 语言中%u,%i,%d,%n。。。等等表示的是什么

作者&投稿:博梁 (若有异议请与网页底部的电邮联系)
C语言里面的%ld、%d、%U都是什么意思啊?~

%ld,%d,%u都是格式说明符中的类型。它的作用是将输入或者输出的数据按照格式说明符指定的格式进行输入或者输出。
(1)%ld表示数据按十进制有符号长型整数输入或输出。
(2)%d表示数据按十进制有符号整型数输入或输出。
(3)%u表示数据按十进制无符号整型数输入或输出。
格式说明符由%和格式字符组成。在一个格式控制字符串中可以有多个格式说明符,每一组格式说明符都是以%开始,以一个格式字符作为结束。具体类型和所代表含义如下图:

扩展资料:
当格式说明符限制了输入或输出的数据类型时,要与数据起始定义数据类型一一对应,否则会引起输入或输出错误。下面介绍一些基本的数据定义类型。
(1)void:声明函数无返回值或无参数,声明无类型指针,显示丢弃运算结果。(C89标准新增)
(2)char:字符型类型数据,属于整型数据的一种。(K&R时期引入)
(3)int:整型数据,表示范围通常为编译器指定的内存字节长。(K&R时期引入)
(4)float:单精度浮点型数据,属于浮点数据的一种。(K&R时期引入)
(5)double:双精度浮点型数据,属于浮点数据的一种。(K&R时期引入)
(6)_Bool:布尔型(C99标准新增)
(7)_Complex:复数的基本类型(C99标准新增)
(8)_Imaginary:虚数,与复数基本类型相似,没有实部的纯虚数(C99标准新增)
(9)_Generic:提供重载的接口入口(C11标准新增)
参考资料:c语言_百度百科

这几个都是C语言格式化输入输出时使用的格式符号。其中%U为误写,实际为%u。
格式化输出函数包括printf, fprintf, sprintf等等。
格式化输入函数包括scanf, fscanf, sscanf等等。
这类函数在输入输出的时候都有一个参数为格式化字符串(format_str), 里面介绍了输入输出字符串的格式,当需要输入输出变量值时,就需要用对应的格式化字符来替代。
题目中提到的三种格式分别对应:
%ld对应long型,即长整型。
%d对应int型,即整型。
%u对应unsigned int型,即无符号整型。
除此以外,还有如下常见的类型。
%hd对应short型,即短整型。
%hu对应unsigned short型,即无符号短整型。
%f对应float型,即单精度浮点型。
%lf对应double型,即双精度浮点型。
%c对应char型,即字符型。
%s对应char *型,即字符指针/字符数组(均可称为字符串)。
%x对应int型,不过是以16进制输入输出。
%lx对应long型,同样是16进制形式。

以下是一个简单的例子:
#include int main(){ int i; long l; unsigned int u;//定义三个不同类型的变量。 scanf("%d%ld%u",&i,&l,&u);//格式化输入三种变量,每个对应自己的类型。 printf("i = %d
", i); printf("l = %ld
", l); printf("u = %u
", u);//分行格式化输出三个变量的值。 return 0;}如果输入1 2 3
将输出
i = 1l = 2u = 3

printf("The sum of three and four is %i\n",three,four,sum );//这句话错了一个%i 只代表一个变量

你可以把这句话改成printf("The sum of three and four is %i\n",sum ); 就可以运行了

%i和%d都是表示有符号十进制整数区别在于,%i可以自动将输入的八进制(或者十六进制)转换为十进制,而%d则不会进行转换。
%o 无符号8进制整数
%u 无符号10进制整数
%x 无符号的16进制数字,并以小写abcdef表示
%X 无符号的16进制数字,并以大写ABCDEF表示
%F/f 浮点数
%E/e 用科学表示格式的浮点数
%g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数
%c 单个字符
%s 字符串

%i其实就是%d
整形变量占位符就是用%d
%lf是double的占位符
float类型变量也可以用占位符%f,如果用%d,那打印出来的就是整形的 。
第二个为什么是3不是7是因为,前面只有一个占位符,只取后面参数的第一个,取的就是three,如果前面再加两个占位符就取到sum了。

%d 和 %i 是完全等价的

你的问题是:
printf("The sum of three and four is %i\n",three,four,sum );

应该改成
printf("The sum of %i and %i is %i\n",three,four,sum );

那些都是占位符,如printf("The sum of 1 and 2 is %d\n",sum);
的%d打印的内容就是sum的十进制数,
%u好像是16进制,其他的我不太清楚,自己去查一下


北湖区13172366035: c 语言中%u,%i,%d,%n...等等表示的是什么 -
字琛心脑: printf("The sum of three and four is %i\n",three,four,sum );//这句话错了一个%i 只代表一个变量 你可以把这句话改成printf("The sum of three and four is %i\n",sum ); 就可以运行了%i和%d都是表示有符号十进制整数区别在于,%i可以...

北湖区13172366035: C语言中%d,和%u有什么区别 -
字琛心脑: %d可以用在scanf中,也可以用在printf中,%u只能用在printf中(早期编译器),后来的一些编译器也可以用在scanf中.用在scanf中时二者没有区别作用与%d相同,用在printf中时二者情况就大不一样了:%d把对应的整数按有符号十进制输出,%u把对应的整数按无符号十进制输出,比如printf("%d,%u\n",-123,-123);,输出则是-123,4294967173——因为-123的补码是11111111111111111111111110000101,在%u控制下把它当正数输出了.

北湖区13172366035: C语言里面的%ld、%d、%U都是什么意思啊? -
字琛心脑: %ld表示把对应的数据当作长整数输出 %d表示把对应的数据当作整数输出 %U表示把对应的数据当作无符号整数输出

北湖区13172366035: c语言中的 %u 什么意思啊? -
字琛心脑: %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 字符串

北湖区13172366035: c语言中 %u 表示什么 -
字琛心脑: %u无符号十进制整数 %lu无符号长整型 %d有符号十进制整数 %0无符号八进制 %x无符号十六进制整数

北湖区13172366035: %u在c语言中是什么意思,怎么算的? -
字琛心脑: %u,格式化字符串时用的,u表示格式化为无符号整数(unsigned int) 举例来说:int i=1,j=-1; 有符号整数-1用16进制表示为0xFFFE.则 printf("i=%u,j=%u", i, j)的结果是 1, 4294967295 (0xFFFE直接换算成十进制)

北湖区13172366035: c语言里%u和%d有区别吗? -
字琛心脑: 当然有.若有int x=-8;则printf("%u,%d\n",x,x);的结果是4294967288,-8.

北湖区13172366035: C语言中输出语句中的%d和\n是什么意思
字琛心脑: %d是十进制输出 \n是输出后换行 如: int iCount = 10; printf("iCount = %d. \n 你好啊!", iCount ); 结果: iCount = 10 你好啊!

北湖区13172366035: C语言中%u\n是什么意思 -
字琛心脑: %u\n用于格式化输出语句中,如printf, sprintf,vsprintf,fprintf等.其作用为输出一个无符号数,并换行.其中%u为无符号整型数值(unsigned int)的通配符,\n为转义字符,代表换行.比如 printf("%u\n", 19); 则输出为19<CR><CR>即换行标识.

北湖区13172366035: c语言中%d之类的符号是什么意思 -
字琛心脑: %d\n,最后一个printf语句的意思是输出sum is 后面是sum的值,然后换行 printf(“%d”,sum);意思是输出sum 而printf(“\n”);意思是换行 %d 是一个代表整型变量的符号,说明这个位置是个整型变量,如果你要在这个位置输出一个浮点型变量就要改成%f,double型变量就是%lf,字符型是%c

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网