为您找到"

想通过char a[10],b;scanf("a=%sb=%c",a,&b);语句使a中存放1234,b中存 ...

"相关结果约100,000,000个

main() { char a,b,c,d; scanf("%c%c",&a,&b)

你的程序是输入4个字符,然后输出这4个字符 首先回车也是一个字符 你的输入里第3个字符就是一个回车,所以第4个字符是3 程序执行的结果就是 12回车3 程序运行截图:

...int a,b; scanf("a=%d, b=%d",&a,&b); printf("\n");

scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。scanf()的格式控制串可以使用非空白字符,但在输入时必须输入这些字符。例:scanf("%d,%d",&a,&b);输入: 3,4 ↙(逗号与"%d,%d"中的逗号对应)scanf...

main() { char a,b,c; scanf("%c%c",&a,&b); c=a,a=b,b=c; printf...

你应该是输入的时候有空格隔开了两个字符吧 比如:a b,这个时候其实是输入了3个字符的,第二个字符是空格,所以你看到的是a处显示空白 include <stdio.h>int main(){ char a,b,c;scanf("%c %c",&a,&b);//%c%c之间加个空格,或者你的输入改为ab,而不是a bc=a,a=b,b=c;printf...

char *a; scanf("%s",a); printf("%s",a); 这样行么?

不行,a没有初始化,也没有分配足够的空间,scanf会把a指针所指内存开始的一段空间都修改,可能那段内存是不允许读写的,造成程序错误或崩溃。改成:char a[100];scanf("%s",a);或者 char *a;a = (char*)malloc(100);scanf("%s",a);就可以往a中写入不超过100个字符了。

char s[5];scanf("%s",&s);对吗?

不对,scanf后面的括号中,参数列表如果是变量的话,才用取地址符,但是如果是字符串形式,其数组名就表示首字符的地址,因此直接用数组名就可以,不用取地址符。

main() { char a,b,c; scanf("%c %c%c",&a,&b,&c); printf("%c%c%c...

换行、TAB等)作为读入参数的分隔符,但读入 char类型时例外(至于为什么应该不难理解:为了满足读入一个空格的需要)。有逗号的情况,scanf没读到“本来准备出现”的空格(即使读到了也是忽略,因此没有多少区别),继续读取输入串中的下一个字符,“,”则被赋给了b,然后2又被赋给了c。

char a;scanf("%c",&a);printf("%c",a);假如从键盘输入123然后_百度知...

结果肯定是1哈~原因:scanf("%c",&a)表示的是输入一个字符,注意是一个字符,剩下的字符会忽略掉。此时a的值是1,因此输出此时a的值就是1,因为字符中的1表示1,在Unicode编码中65开始是字符a,依次类推~~~

有定义语句:int b;char c[10];, 则正确的输入语句是( )。 A.scanf("

d对应整型b,%s对应char型的c,b是普通变量,输入要取地址,c是数组,数组名本身就代表首地址

char a[100];然后scanf("%c",a+i);为什么是a+i???

数组在c语言里面是用指针来表示的,a就是a[100]的首地址,a+i就是a[i]的地址,即(a+i)就是&a[i],而*(a+i)就是a[i],在这里i表示偏移值,因为scanf的后面要求跟一个地址,所以当然a+i是正确的了,表示把你输入的字符赋值给a[i]...

c语言中的几个关于* &的指针问题还有构造函数问题(不要扯c++上去了)

首先,对楼主的好学好问精神相当赞赏。对于第一个问题,myadd中传递的两个参数是指针类型,而指针类型的变量中保存的值是内存地址,调用此函数时用&就是取对应变量地址之意。注意这* &两个符号的含义——取指针对应地址的内容和取内容对应的地址。下一个问题,void意思是该函数结束时不会有返回值,故...
1 2 3 4 5 6 7 8 9

相关搜索