1樓:
int ran;
ran=rand();
不是初始化,它是宣告與賦值語句。
int ran=rand();宣告 時就 給定數值,叫初始化。
if(ans=='n') goto done; 轉向語句不允許 跳過乙個 同一層的 含 初始化 的區域。
轉向語句只允許轉向它的同層或外層。如果你把初始化部分用花括號括起來,讓它成為乙個內層,就允許了:
if(ans=='n') goto done;
int ran=rand();
done: return 0;
2樓:網友
這個基本上可以視為編譯器bug, intel編譯器也有這種問題,而微軟編譯器就沒有。
如果goto跳過的**含有初始化就會視為錯誤,即便這個變數在這種情形下根本不會被使用。這麼做是毫無意義的。
int i = 0;這就是初始化,在宣告的時候用=賦予初始值。修改前後生成的**沒有區別。
3樓:網友
聽樓上大家的意見,應該是程式執行的層次問題吧"int ran:ran=rand()"裡的":"是包含的意思,整句意思是"intran"包含"ran=rand()"
4樓:網友
你把那個goto語句去掉試一下,如果沒有問題的話。
就應該是編譯器不知道程式應該怎麼樣處理的這樣問題。
因為前面有乙個跳轉語句,編譯器不知道是否應該給後面的變數ran進行初始化。
c語言中goto語句的用法??舉例來說。
5樓:精金框架妊奧
goto語句可以使程式在沒有任何條件的情況下跳轉到指定的位置,所以goto語句又被稱為是無條件跳虧簡轉語句。
它的語法如下。
goto label;
其它**。label:
其中,label為我們自己定義的乙個標籤,定義的規則與變數的命名相同,它的位置是不固定的,它可以寫在goto語句的後面,也可銷昌褲以寫在它的前面,然而goto語句只能在乙個函式內部跳轉,它並不允許跳轉出乙個函式外部。
int day = 1;
loop:if (day <=31)
printf("%d", day);
day++;
goto loop;
上面程式就是利用了goto和if語句來實現了迴圈功能,它與while實現的迴圈功能一樣,其中loop為我們定義的乙個label(標籤)。
c語言中goto語句的用法??舉例來說。
6樓:風若遠去何人留
goto語句也稱為無條件轉移語句,其一般格式如下:
goto 語句標號; 其中語句標號是按識別符號規定書寫的符號, 放在某一語句行的前面,標號後加冒號(:)語句標號起標識語句的作用,與goto 語句配合使用。
c語言不限制程式中使用標號的次數,但各標號不得重名。
goto語句的語義是改變程式流向, 轉去執行語句標號所標識的語句。
goto語句通常與條件語句配合使用。可用來實現條件轉移, 構成迴圈,跳出迴圈體等功能。
在結構化程式設計中一般不主張使用goto語句, 以免造成程式流程的混亂,使理解和除錯程式都產生困難。
以下例句,當i等於5時,程式轉向stop標籤處語句。
example of the goto statement
void main()
* this message does not print: */
printf( "loop exited. i = %d", i );
stop: printf( "jumped to stop. i = %d", i );
c語言中,我覺得goto語句很好用啊,在做一些判斷時很實用,但為什麼書上說寧願加強迴圈也不用goto語句?
7樓:杜耕順晏娟
goto語句是有害的觀點:
1968年,e·w·代克斯特拉首先提出「goto語句是有害的」論點,向傳統程式設計方法提出了挑戰,從而引起了人們對程式設計方法討論的普遍重視。
goto語句的爭論:
在60年代末和70年代初,關於goto語句的用法的爭論比較激烈。主張從高階程式語言中去掉goto語句的人認為,goto語句是對程式結構影響最大的一種有害的語句,他們的主要理由是:goto語句使程式的靜態結構和動態結構不一致,從而使程式難以理解,難以查錯。
去掉goto語句後,可直接從程式結構上反映程式執行的過程。這樣,不僅使程式結構清晰,便於理解,便於查錯,而且也有利於程式的正確性證明。
持反對意見的人認為,goto語句使用起來比較靈活,而且有些情形能提高程式的效率。若完全刪去goto語句,有些情形反而會使程式過於複雜,增加一些不必要的計算量。
關於goto語句的解決方法:
1974年,d·e·克努斯對於goto語句爭論作了全面公正的評述,其基本觀點是:不加限制地使用goto語句,特別是使用往回跳的goto語句,會使程式結構難於理解,在這種情形,應儘量避免使用goto語句。
8樓:初運旺茹辛
goto用起來是方便,但是破壞了程式的結構,你寫的時候可能很明白,但對以後的維護、其它人員的接手都是破壞性的。乙個良好的程式結構,比效率都重要,對乙個產品來說,可維護性的重要性是很高的,而goto語句正是這方面的大敵。
關於C幾個基本語句的問題先謝謝了
直接回答咯啊。1,this 指當前的類 在你的程式裡面指 person類 2,set訪問器時,表明屬性的值只能進行設定而不能讀出 get訪問器時,表明屬性的值是隻讀的,不能改寫 在你的程式裡面 get是獲取屬性,是自讀變數 set,就是將改變name的屬性 value 在不同的地方用途意思不一樣,在...
關於SQL語句的問題,關於SQL語句的問題,求解決
等同於count 就是分組的記錄總數 count 1 的那個1意思就是用一個長值欄位1來表示存在一條記錄用哪個數字都可以,這樣寫在欄位很多的情況下能更快 update lzhu set zaiwang select distinct zaiwang from kkkkk where kkkkk.ha...
c 的簡單問題,一個c 的簡單問題
i 與 i 的區別 1.i是先把 i 的自身值加1,再取i值參與運算。2.i 是先取 i 當前的值參與運算,等到該語句結束 遇到分號 後才加1 特別注意。如題 int i,j i 10 i i i 先取i當前值進行賦值運算,即i 10 10 20,等語句結束後i再自增兩次,即i為22 cout i ...