C语言中 printf语法printf("%d %d %c\n",a,b,c);和printf("%d %d %c\n",&a,&b,&c);什么区别?一定采纳

作者&投稿:长孙肯 (若有异议请与网页底部的电邮联系)
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 stdoutWrites 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
",a,b,c);表示 a b以整形输出c以字符格式输出 &这个符号在定义变量的时候是表示引用,在传递参数和赋值的时候表示取这个变量的地址。 printf("%d %d %c
",&a,&b,&c);表示 a b变量的地址以整形输出 c变量的地址以字符格式输出 这种输出肯定是不对的。地址一般是%p格式输出

printf("%d,%d
%c,%c
",a,b,a-32,b-32);表示:
以整数的形式输出a,b的值(ASCII码)再换行,然后以字符的形式输出a-32,b-32的值(即如果a、b是小写字母,则输出大写字母)。一个小写字母的ASCII码比它的大写字母的ASCII码大32。可以给你简单举一例。
假设有char a='c',b='f';
则printf("%d,%d
%c,%c
",a,b,a-32,b-32);
输出
99,102
C,F
其中99是字母c的ASCII码,102是字母f的ASCII码,将它们减去32后的差以字符形式(%c的格式)显示,就变成了大写字母。

简单说,前者是变量的值,后者是变量的地址。

这还同变量声明有关。输出格式要与它们匹配。
例如:
char a,b,c;
a='x';b='y';c='z';
printf("%d %d %c\n",a,b,c); // a,b 用 十进制输出 'x' 'y' 的 ASCII 编码值,c 输出 'z' 的字符 z.
输出:120 121 z

printf("%d %d %c\n",&a,&b,&c); // 带&的 是 算出 它们的地址 &a,&b,&c 分别是 a,b,c 的地址。
对应的输出格式 ,前两个%d 还可以,按十进制 输出,后 一个 %c 就与&c不匹配了。

输出地址,一般用 16 进制,%p 格式:
printf("%p %p %p\n",&a,&b,&c);
例如输出: 0012FF7C 0012FF78 0012FF74

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

前一句输出abc的值,后一句是未定义行为。

看到说输出地址的我都笑疯了,%d输出地址可以理解为你输入输出都没好好学,%c输出地址我一口水喷到了屏幕上。


好了回归正题。&a,&b,&c的类型都是T*,要输出其地址应该使用%p输出。例如:

printf("%p %p %p
",&a,&b,&c);

%d和%c都期待一个int型的参数,如果指针在你的平台上和int大小不同就会喜闻乐见的得不到正常的结果。



前一句是打印a,b,c的值,后一句是打印a,b,c的地址
&为取地址操作
你知道这些变量都存在内存中的某个地址,这个地址里面有一个数据,这个数据就是这个变量的值
变量的值和变量的地址,这是两个概念

一般是都是这样写的:

printf("%d %d %c
",a,b,c);

在printf中一变量前面是一般是不会加“&”的,&是取地址符,是取得该变量的地址,一般用在scanf函数中:

scanf("%d",&a) ;
printf("%d",a) ;

 如果用在printf中则为输出变量的地址。




雅安市19816416019: c语言中,printf(“所占百分比为(%f)%”,t),在编绎时有warning,那怎么用prin -
卞胖联邦: 一个你可以用中文全角输入%,另一个在%前加反斜杠\,即printf(“所占百分比为(%f)\%”,t).

雅安市19816416019: C语言中printf是什么意思 -
卞胖联邦: 1,printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息. 2,printf()函数的调用格式为: printf("", ). 3,格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义).用于向终端(显示器、控制台等)输出字符.格式控制由要输出的文字和数据格式说明组成.要输出的的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义. 4,作用:在c语言中产生格式化输出的函数(定义在 stdio.h 中),其向终端(显示器、控制台等)输出字符.

雅安市19816416019: C语printf函数的格式和用法 -
卞胖联邦: rintf(格式化语句,变量);

雅安市19816416019: 在C语言中,include,printf是什么意思 -
卞胖联邦: include是C语言中的预处理指令,用于包含头文件(.h扩展名).使用方法有两种,#include <xxx.h>#include "xxx.h"使用include包含了一个头文件后,该头文件将在预处理阶段全文被复制到当前程序文件中. 两者区别主要是查找头文件的路径,<>在系统目录中查找,""先在当前目录中查找然后在系统目录中查找.printf为格式化输出函数,将数据输出到屏幕,原型: void printf(const char *format,...);通过format指定格式符,再传入相应的要输出的元素即可.

雅安市19816416019: c语言printf(“ ”)语句 -
卞胖联邦: 原发布者:STUPID小H这次我们主要学习的是有关printf的一些知识,但因为输入和输出是很大的一块内容,所以我们在这里就只是介绍一下printf的简单应用,更多的东西有机会再提吧.既然要学习使用printf,那么就首先要了解什么是printf....

雅安市19816416019: 请问高手,在C 语言中printf与print两个有什么区别,功能上有什么不同? -
卞胖联邦: print--是函数,可以返回一个值,只能有一个参数.用起来最简单printf--函数,把文字格式化以后输出,直接调用系统调用进行IO的,他是非缓冲的. 如: $name="hunte"; $age=25; printf("my name is %s, age %d", $name, $age);

雅安市19816416019: C语言 printf函数 -
卞胖联邦: 也就是说,参考个数可以自己定... 如:printf("%d%d%d",x,y,z);//就是输出三个变量...""中添加要输出的内容%d表示10进制输出... 后边的x,y,z和前边的%d是一一对应的...,前边几个,后边就几个

雅安市19816416019: c语言printf怎么输出自己规定的int变量? 比如我自己找个数%d赋值给a,在之后的prin -
卞胖联邦: printf("a=%d",a);就可以了.不知道是不是你说的意思,不清楚可以追问.

雅安市19816416019: C语言怎么用printf输出字符串. -
卞胖联邦: void main() { unsigned char *x = "ab,sdf,sad,23432,cc"; data = x;printf("data = %c\n", *data); printf("data = %s\n", data); system("pause"); } 扩展资料: printf输出字符串的一些格式 1、原样输出字符串:printf("%s", str); 2、输出指...

雅安市19816416019: 写一个c语言用printf语句打印以下文字 -
卞胖联邦: #include<stdio.h> int main () {printf("你想打印的文字");return 0; }

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