c语言中scanf中输入%4c%3c,x,y 输入abcdefg怎么输出是f和e

如题所述

这个和栈溢出相关.
如果你是用char x,y; 这样的语句声明的x, y字符变量, x, y在程序的栈区保存, 且x地址高于y地址.
%4c读取4个字符, 存入&x为首地址的栈空间, 也就是在x内存入字符a, 在&x+1, &x+2 &x+3存入字符b, c, d
然后%3c再读取3个字符, 存入&y为首地址的栈空间, 即y保存了e, &y+1=&x的内存空间内保存了f, &y+2=&x+1内保存了字符g
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-03-15
全部代码贴出来 只给一个输入函数怎么看????

c语言中scanf中输入%4c%3c,x,y 输入abcdefg怎么输出是f和e
4c读取4个字符, 存入&x为首地址的栈空间, 也就是在x内存入字符a, 在&x+1, &x+2 &x+3存入字符b, c, d 然后%3c再读取3个字符, 存入&y为首地址的栈空间, 即y保存了e, &y+1=&x的内存空间内保存了f, &y+2=&x+1内保存了字符g ...

scanf("%3c%4c",&a,&b);当输入ABCDEFGH时 a b的值分别是?怎么来的?
测试输入数据:1234567890abcdefghijklmn 输出结果:8,i,h,g ,f ,e 5.scanf("%3c%2c%4c%2c%3c%5c%2c",&ch1,&ch2,&ch3,&ch4,&ch5,&ch6,&ch7);printf("%c,%c,%c,%c,%c,%c,%c",ch1,ch2,ch3,ch4,ch5,ch6,ch7);测试输入数据:1234567890abcdefghijklmn 输出结果:8...

编写C语言程序,输入顶行字符和图形的高,输出如下所示图形
1,最简单的,直接输入 printf(" A");printf(" B B");以此类推,直接在printf函数中输入空格,达到想要的结果。2,控制输出域,如下 printf("\\n%5c",'a');printf("\\n%4c%2c",'b','b');printf("\\n%3c%2c%2c",'c','c','c');3,通过控制循环次数,来控制空格的输出 ...

相似回答