C语言中 printf语法printf("%d %d %c\n",a,b,c);和printf("%d %d %c\n",&a,&b,&c);啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中 printf语法printf("%d %d %c\n",a,b,c);和printf("%d %d %c\n",&a,&b,&c);啥相关的知识,希望对你有一定的参考价值。

首先看下printf函数的声明
int printf ( const char * format, ... );
Print formatted data to stdout
Writes the C string pointed by format to the standard output (stdout). If format includes format specifiers (subsequences beginning with %), the additional arguments following format are formatted and inserted in the resulting string replacing their respective specifiers.

第一个参数format 是表示输出格式的 其中 %d 表示整形数输出 %c 表示 char类型的输出
后面的参数是和前面的带有%的格式一一对应的。
printf("%d %d %c\\n",a,b,c);表示 a b以整形输出c以字符格式输出

 &这个符号在定义变量的时候是表示引用,在传递参数和赋值的时候表示取这个变量的地址。
 printf("%d %d %c\\n",&a,&b,&c);表示 a b变量的地址以整形输出 c变量的地址以字符格式输出
 这种输出肯定是不对的。地址一般是%p格式输出

参考技术A 前面是输出a b c的值 ,如果定义a b c都为int型,这样输出的就是a b c的值,而后者是输出a b c的地址 一般是不会用后者的 后者的使用一般在scanf函数中,比如要输入a 整形的数值 scanf("%d",&a);这个时候一定是&a 表示a的地址。望采纳。

如何在C语言中用printf()输出某个值的地址?

1.
C语言中要输出地址时通常以16进制的方式输出
2.
printf函数中要显示16进制数时用%x格式
3.
综上,要输出某个值的地址可以写为printf("%x",&变量);若变量为指针时,则应写为printf("%x",指针);
参考技术A 可以用printf("%d",&var);输出变量地址(10进制表示).
之所以每次都输出相同的地址值,是因为在C编译系统中为每一个变量仅分配一个内存地址,就是说不管这个变量存储的是什么值,它的内存地址总还是不变的.
参考技术B 1.
c语言中要输出地址时通常以16进制的方式输出
2.
printf函数中要显示16进制数时用%x格式
3.
综上,要输出某个值的地址可以写为printf("%x",&变量);若变量为指针时,则应写为printf("%x",指针);

以上是关于C语言中 printf语法printf("%d %d %c\n",a,b,c);和printf("%d %d %c\n",&a,&b,&c);啥的主要内容,如果未能解决你的问题,请参考以下文章

print、printf、println的区别

如何在C语言中用printf()输出某个值的地址?

如何在C语言中用printf()输出某个值的地址?

C语言里面float数据用printf(“%d”)输出的问题

求C语言和C++大神解答,printf怎么转成cout输出语句

c语言中printf的用法