C語言中for循環問題(一個小坑需註意)

今天分享一下C語言中的for循環中我們常常忽略的小問題。

舉一個小例子來說明,大傢也可以自己先算一下哦

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
	int a=0;
	int b=0;
	for(a=0,b=0;b=0;a++,b++)
		b++;
	return 0;
}

這是一道面試題,問程序運行幾次呢?運行結果如何?

其實這個小題關鍵是我們有沒有被上圖所示的b=0迷惑。此處的意思是賦值而並非判斷。b=0顯然為假,所以一次都不執行,直接跳出循環瞭。下面我還是把運行結果給大傢看一下。

如果此處不是b=0而是b等於一個非零的值,則此程序會陷入一個死循環。下面把代碼稍微改一下(改為b=1)看一下運行結果。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
	int a=0;
	int b=0;
	for(a=0,b=0;b=1;a++,b++)
		b++;
	return 0;
}

運行結果如下:

今天的分享到這裡,希望大傢以後對於此類容易忽視的小問題也加以警覺,謝謝觀看。

到此這篇關於C語言中for循環問題的文章就介紹到這瞭,更多相關C語言for循環坑內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: