关于c语言的一个语句请看下面这个
答:死循环
为什么:附值语句不可能为假,你while()中的判定条件不是判定某一个数据,是判定一种逻辑的结果是否为'0',如果是的话就跳出循环,如果不是就继续。而你的附值语句始终为真(虽然在将Good morning。 附值完成后会附值'\0',但是这个语句是永远成立的,也就是循环条件是这个语句是否成立而并不是他们的值是否为'0'),但是说到这里,理论上是一个死循环而你在用编译器调试的时候未必,要看编译器了,如果好的编译器,比如:VC++6。 0 (兼容C程序)。你可能就会跳出,
这又是为什么那?因为你的指针在自加的时候就回突破的你开辟空间的范围,而突破的空间可能是其他应用程序或操...全部
答:死循环
为什么:附值语句不可能为假,你while()中的判定条件不是判定某一个数据,是判定一种逻辑的结果是否为'0',如果是的话就跳出循环,如果不是就继续。而你的附值语句始终为真(虽然在将Good morning。
附值完成后会附值'\0',但是这个语句是永远成立的,也就是循环条件是这个语句是否成立而并不是他们的值是否为'0'),但是说到这里,理论上是一个死循环而你在用编译器调试的时候未必,要看编译器了,如果好的编译器,比如:VC++6。
0 (兼容C程序)。你可能就会跳出,
这又是为什么那?因为你的指针在自加的时候就回突破的你开辟空间的范围,而突破的空间可能是其他应用程序或操作系统利用的,那么,编译器会自动地将它跳出并提示你如:"内存0002不能为read类型"一类的语句,也就是你的利用是非法的。
还有一点,我想给你说,即使你要写上述程序也不要么写,不好懂(真正的程序设计高手是让自己的程序清晰易懂,让别人很容易看明白它的程序的意思,在一种严密的逻辑中运行程序,而不是杂乱无章的程序只求得到一个结果或是一个真确的结果的程序(软件工程中:我们程序的测试中是未了检测出程序是错误的,而不是正确的)就是说,我们的程序既然是逻辑就会有漏洞,程序越大越暴露,所以对程序设计者有交高的要求,那么在大程序出现错误的时候,我们就很容易检测到错误了,现在软件设计中的编码阶段要有严格的稳当要求,要求程序有运行工程学的过程并详细注释和阶段文档资料等等,所以,要严格要求自己写程序的风格,不是说谁写的程序让别人看不明白,谁就是高手。
)
像你开始的:while(*p2++=*p1++);
你看这样写:
/*这个程序部分的目的是。。。。。。。,编写的时间是:×年×月×日*/
while(*p2=*p1)/*p1指针所指向的内存的内容给予p2所指内存*/
{
p1++;/*p1的指针向后移动一个单位*/
p2++;/*p2的动作和p1一致*/
}
你看看:这样写程序,不论你的程序写多长要找到一些相关资料也很容易,而且别人读你的程序就像读中文一样简单。
。收起