c语言问题,这两个printf怎么理解呢?

作者&投稿:幸桦 (若有异议请与网页底部的电邮联系)
C语言的一个简单问题,两个printf为什么一起输出?~

printf函数是可变参数的,可以传入任意多个变量进行输出。
所以如果不是两次printf之间有必要的用户输入,任何时候都可以使用一个printf进行输出。
printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。printf()函数的调用格式为: printf("", )。格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。要输出的的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。
原型:extern void printf(const char *format,...);功能:在c语言中产生格式化输出的函数(定义在 stdio.h 中),其向终端(显示器、控制台等)输出字符。

第二个和第一个是一样的,因为p和q都是指向数组的指针。
p是执行数组a第一个元素再取地址,就是a的指针
q的话,由于直接写数组名本身就是数组的指针,所以q=b的指针
而q+1就是在b[0]的基础上向右偏移一位的地址,*(q+1)就是偏移一位后,取到的地址指向的值,也就是b[1]的值

if 后面如果没有跟大括号 { } 的情况下,直接执行到最近的一个分号位置“;“
所以这两个printf这样理解:如果条件成立,则调用第一个printf;而不管条件成立不成立,都会执行第二个printf

对的,上一个是满足条件时换行;
下一个是无条件执行的输出。


C语言问题
int *p; p=&a[3]; 我这样解释,你就应该明白了吧。第二个问题,虽然这 int a[]={1,2,3,4},y,*p=&a[3]; 是一个语句,但是在C 语言编译时,在编译一条语句的时候,如果这一条语句又可以分解为几条语句的话,也会一条一条自语句编译的,也就是说,当语句编译到 y 的时候,它...

c语言问题,有两个问题,符号常量在整个程序中其值都不能再被重新定义?这...
常量就是右值, 它在内存中没有它的空间, 也就不能改变它的值, 或者可以这么说, 你就算改变了它也没有任何价值, 而且这样会对程序的一些地方的错误难以发现. 所以它是不能被改变的.而符号常量和常量一样, 它是不能被改变的. 但是它是有作用域的, 超过这个作用域就没用了.常量你可以理解成有...

C语言问题为什么会出现两个结果
feof(FILE*) 作为判断条件的 while 循环始终会多读一次,而最后一次的读取是失败的,st.name,st.phone 也就没有改变,看起来就像是重复读了一次。其实可以在循环体内加上一句:if(feof(file))break;

从键盘输入两个命题P和Q的真值,输出它们的否定、析取、合取、条件和双...
include\\x0d\\x0amain()\\x0d\\x0a{\\x0d\\x0aintp,q;\\x0d\\x0aprintf("请输入p和q的真值\\n");\\x0d\\x0ascanf("%d,%d",&p,&q);\\x0d\\x0aprintf("p的否定:%d\\nq的否定:%d\\n",!p,!q);\\x0d\\x0aif(p==1||q==1)\\x0d\\x0aprintf("p析取q=1\\n");\\x0d\\x0a...

c语言问题:字符串的交叉合并问题;如,输入两个字符串,要求将这两个字符...
p++; q++; } while(*q!='\\0') \/*问题同上*\/ { c[i]=*q; i=i+1; \/*这里i的下标要自增*\/ q++; } c[i]='\\0'; \/*最后要加一个结束字符,否则输出可能会有乱码*\/ printf("%s",c)...

一个C语言问题,希望教一下
n=*p; \/\/指针p指向x,所以n=5 p=&a[n-1]; \/\/指针p指向a[4]for(i=n-2;i>=0;i--)if(a[i]>*p) p=&a[i]; \/\/找数值最大的 return *p; \/\/指针p指向数值最大的a[0]=18,将这个值返回。} 所以y=18,x值没有变。

c语言,为什么运行多了一个p?
s要输出以0结束的字符串,你数组定义并未给出完整的字符串(没有以0结尾),后面printf会一直输出直到遇到0

1.根据下列词语,试说明[ph]和[p]在英语和北京话中分别为几个音位?为...
(双向)聚合群:语言中的音位不是孤立的,每个音位都可以通过自己的区别特征和其他有共同特征的音位联系着,聚合成群。比如北京话的\/p\/音位同时处在两个聚合群中:根据发音部位,它与\/p\/\/p’\/\/m\/形成聚合群;根据发音方法,它与\/t\/\/k\/形成聚合群。这样它就处于双向聚合之中,这样形成的聚合群就...

一个c语言问题请教
char * p = "hello";没错, 但这样写表示p指向的是字符串常量不能修改, 这梯样一来p[0] = 'a';就是错的; 如果你真的想修改字符串内容的话只能用字符数组:char p[] = "hello"; 这样就可以写p[0] = 'a';了

c语言问题
2.下列程序是检查一个字符串是否回文。所谓回文即正向,反向的拼写都一样,如moom,aba等。当是回文时,输出“yes!”.否则输出”no!”。填空。(99年北京市试题)main(){ char *p, *q;int i,m,n,k;printf(“please input a string:\\n”);scanf(【① C 】);n = strlen(p);m=n...

大安区17057061801: acm的c语言题 下面两个printf 的三目运算符怎么理解 -
施琰艾迪: printf(c++ ? " %d" : "%d", b + m - 1); 可以分解为:如果c != 0 printf("%d", b + m -1 ); 如果 c == 0 printf("%d", b + m - 1); 然后c++ printf(n % m ? " %d\n" : "\n", b + n % m - 1); 可以分解为:如果n % m != 0 printf("%d\n", b + n % m - 1); 如果n % m == 0 printf("\n", b + n % m - 1);

大安区17057061801: 在C语言里,printf怎么输出2个变量? -
施琰艾迪: 要输出两个变量:用逗号隔开即可,%d是整数的输出标识符,标识符和变量的顺序是相对应的, 输出2个变量的代码修改: { int a,b,c,sum,sum1; a=10; b=20; c=30; sum=a+b; sum1=a+b+c; printf ("sum=%d/nsum1=%d/n",sum,sum1); } 扩...

大安区17057061801: 在c语言中scanf函数和printf函数具体怎么用,还有这两者的区别是什么? -
施琰艾迪: 1.如scanf("%d",i)中只要前面是%d,后面i不管是什么类型?都按指定的格式(整形)输出? 2.如printf("%d",i)中i必须是前面规定的类型(整型)? 如果我直接printf(i)就不对?假设对的话,这个意思就是输出变量名i?] 而printf("%d",i)就是输出变量值的意思? 那么第一个"%d"就是帮助程序(或者格式化)获取一个需要的类型的值? 那么第二个"%d"就是告诉计算机输出的变量的值是个整形?

大安区17057061801: C语言中,printf函数如何处理%s? -
施琰艾迪: '\0'是字符串的结尾标志,占一字节,值为0. printf("%s",arr)语句指定了字符串的开始地址arr,函数向后逐字节寻找值为0的字节,找到后把之间的字节按字符解释并输出. 你给出的情况,先输出abc,后面输出什么,要看内存的实际情况,可能什么也不输出,也可能输出一些乱码.

大安区17057061801: c语言中printf打印字符串的问题 -
施琰艾迪: printf("%s", "Hello world"); printf() 函数 有2 个 实际参数, 第2个参数: "Hello world" 是字符串常量,存放在某内存区域. 第一个参数是格式,其中 %s 是输出格式转换. 执行时 要把 第2个参数 按 %s 的方式 作 格式转换,然后输出. ...

大安区17057061801: C语言问题,为什么两个printf输出乱码呢,找不到原因,跟书上的一样啊 -
施琰艾迪: 问题原因 : 不了解文件指针的工作方式 当 fscanf(fp1,"%ld%s%d%s",&student.id,student.name,&student.age,student.sex); 运行完之后 fp1已经指着文件末尾了,因此后面没有可以输入的信息,最后导致你的输出都是问题.如何处理这种情...

大安区17057061801: C语言printf 里的问题 求助 这是怎么算出来的 -
施琰艾迪: 1. 由于你的表达式中含有 ++i,--i,计算符号放在变量前的含义是优先进行计算,所以在printf进行之前,会先计算三个这样的东西 2. 反过来i--这样的运算符在后表明先进行其所在的整个的代码(这里是printf),后进行自增自减运算 3. 综合考虑以上两点,就输出成这样了

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

大安区17057061801: C语言库函数问题:fprintf和fscanf这两个函数的用法我始终不能很好的区分开,请大家讲下这两个函数的用途 -
施琰艾迪: 言代码,所以fprintf() 及fscanf()等函数都能用.另外,(1)Linux上的输出命令:printf printf 命令,格式化输出,是echo 命令的增强.它是C 语言printf()库函数的一个有限的变形,并且在语法上有些不同.printf format-string... parameter...这是Bash 的内建版本,与/bin/printf 或/usr/bin/printf 命令不同.想更深入的了解,请 察看printf(系统命令)的man 页.(2)Linux Shell 有一版本为CShell,语法与C有很大相似之处.

大安区17057061801: 为什么如下的c程序,运行时第2个printf会输出两遍? -
施琰艾迪: 上述问题和IO输入机制有关,当你按下Enter停止输入时候,输入缓存中还存在着一个Enter字符.只需清除缓存中的信息即可.将以下语句插入scanf之后,即可 fflush(stdin);

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