C语言中的%%d是什么意思

如题所述

表示把数据按十进制整型输出,类似的符号含义如下:

%o表示把数据按八进制整型输出;

%x表示把数据按十六进制整型输出;

%u表示把数据参数按无符号整型输出。

%f显示小数表示的普通浮点数

扩展资料:

c语言特有特点

C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。

C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。不同的变量类型可以用结构体(struct)组合在一起。通过指针(pointer),C语言可以容易的对存储器进行低级控制。预编译处理(preprocessor)让C语言的编译更具有弹性。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-01
printf("%%d"); // 会输出%d
因为%用来作格式符,如%c,%与c搭配表示输出一个字符,%d表示输出一个整数。
那么怎么输出%呢?即用%%表示输出一个%追问

%%%d呢

追答

一般是这么用吧:
printf("%%%d", 123);
会输出:
%123

printf会一个个来处理格式串“%%%d"中的格式符,它从第一个%开始看,发现%%是连续的两个,输出一个%,
剩下的是%d, 表示输出一个十进制表示的整数

追问

那你看一下这个程序:
#include
void main()
{
int i=8,j=9;
printf("%%d,j=%%%d\n",i,j);
}
输出结果是怎样的,谢谢!

那你看一下这个程序:
#include
void main()
{
int i=8,j=9;
printf("%%d,j=%%%d\n",i,j);
}
输出结果是怎样的,谢谢!

追答

%d,j=%8
不是%9

追问

为什么

追答

答案是没有错啊。你看printf是怎么输出的吧:
"i=%%d,j=%%%d\n"
前两个格式符是%%,都是输出%,不需要对应的格式串后面的参数,最后一个格式符是%d,对应一个参数,是i

追问

为什么是i不是j

追答

是这样的,printf是通过格式串来知道应该怎么格式化输出格式串后面的参数的,如:
printf("%c, %d", 'a', 123);
printf在执行时,看格式串中有两个格式符,一个是%c, 一个是%d, 它就知道了格式串后面有一个参数是字符,另一个参数是整数了。就按格式串指示的来格式化输出。

那么printf("%%d,j=%%%d\n",i,j);也是类似这样执行的。
它看到有三个格式符:%% %% %d
前两个格式符是表示输出%的,%d是表示后面有一个参数是整数,请注意:
格式串后面的整数是哪一个?
就是调用时格式串"%%d,j=%%%d\n"后面的i啊。所以格式化输出i, j被忽视了。因为格式串中没有对应j的格式符。

本回答被提问者采纳
第2个回答  2019-09-09
这个是格式控制符%d是int型的输出控制符.在printf函数中表示输出整型数

%c是char型的输出控制符.在printf函数中表示输出字符型。
第3个回答  2011-03-16
%d 代表的是十进制字符 %%d不懂..
第4个回答  2019-07-15
对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x;对e,g,f
类当结果有小数时才给出小数点
#应该放在d之前否则看成普通字符按原样输出#
一个\是转义符号也不输出。
相似回答