help me
printf("请输入第一个字符串:");while((a=getchar())!='\n')
{
i++;
};
和
printf("请输入第一个字符串:");
while ((str1 = getchar()) != '\n')
;
这两个的区别是什么啊,求高手解答!!!! qq1242009750 发表于 2016-5-25 13:14
printf("请输入第一个字符串:");
while ((str1 = getchar()) != '\n')
就像8楼说的那样,可能是我第一次说的不够清楚,所以调试截图给你看吧,下面有图看到区别了吗,
a例子里面i=4,当符合条件时它没有再去执行i++,所以等于4,
str1例子里i=5,说明当符合条件时它继续执行括号了的i++,所以等于5 qq1242009750 发表于 2016-5-25 13:14
printf("请输入第一个字符串:");
while ((str1 = getchar()) != '\n')
下面是直接运行的结果,a例子中i=4,就是说运行了5次,分别读取了1 2 3 4 回车键,所以输出的时候是1234,然后输出回车换行,五个字符。
str1例子中i=5说明运行了6次,可是我只输入了1234回车键,因为符合条件时它继续执行了一次括号里的i++,所以输出的时候是1234,然后输出回车换行,再输出一个乱码,因为str1被系统随机分配了一个字符,所以是乱码。。。 如果两个例子同样输入了:1234一个回车
那么:
第一个例子就只有a到a这五个变量,a存的是回车键。
第二个例子就是str到str这六个变量,str存的是回车,str存的是计算机随机分配的一个数。
{:10_242:} 夜雨de街灯 发表于 2016-5-24 15:23
如果两个例子同样输入了:1234一个回车
那么:
第一个例子就只有a到a这五个变量,a存的是回车键 ...
能否详细说说{:5_94:} 为什么我感觉没区别呀。。。。。。 如果是
printf("请输入第一个字符串:");
while ((str1 = getchar()) != '\n')
;
第一个字符是存放在str1中吗? qq1242009750 发表于 2016-5-24 22:06
如果是
printf("请输入第一个字符串:");
while ((str1 = getchar()) != '\n')
不是,存在str1里;如果是str1[++i]就是存在str1中 夜雨de街灯 发表于 2016-5-25 08:39
不是,存在str1里;如果是str1[++i]就是存在str1中
while ((str1 = getchar()) != '\n')
当循环执行的时候
getchar()在键盘缓冲区读取一个ASCLL码,然后把ASCLL码给str1?? 如果i= 1的话,那么久存放在str1中了
是这样吗,求解不懂啊
两个的区别
第一个当读取到'/n'的时候,循环结束,i不会再加一;
第二个读取到'/n'的时候,i还会再加一。 {:10_247:} printf("请输入第一个字符串:");
while ((str1 = getchar()) != '\n')
不明白这个语句怎么执行!!!!!!,求分析 游啊游 发表于 2016-5-24 16:28
能否详细说说
看楼上{:10_319:} 夜雨de街灯 发表于 2016-5-25 17:21
下面是直接运行的结果,a例子中i=4,就是说运行了5次,分别读取了1 2 3 4 回车键,所以输出的时候是1234 ...
好像懂了点了,请问怎么把C语言转换成汇编语言。我想看看汇编,可能我会有更好的理解。 qq1242009750 发表于 2016-5-26 22:39
好像懂了点了,请问怎么把C语言转换成汇编语言。我想看看汇编,可能我会有更好的理解。
在调试哪里可以看到 夜雨de街灯 发表于 2016-5-27 08:14
在调试哪里可以看到
请问您用的是什么编译器呢? qq1242009750 发表于 2016-5-27 11:24
请问您用的是什么编译器呢?
VC++6.0和Visual Studio 2015 夜雨de街灯 发表于 2016-5-25 17:21
下面是直接运行的结果,a例子中i=4,就是说运行了5次,分别读取了1 2 3 4 回车键,所以输出的时候是1234 ...
额,乱码不是因为str1没有初始化吗? skyseawing 发表于 2016-5-30 13:43
额,乱码不是因为str1没有初始化吗?
就是因为没有初始化,所以计算机随便给一个数{:10_256:}
页:
[1]