因為迴圈體必須是一條語句,但是使用過程中,多條語句也是不可避免的。因此就可以將多條語句,利用一對花括號來構造一條復合語句(也稱為**塊,block),從而只被視為一條語句。
但是復合語句還有一種有趣的特性。如果在復合語句中定義乙個新的變數,則僅當程式執行該復合語句中的語句時,該變數才存在,但復合語句執行完畢之後,變數則會被釋放。
//p138
#include
int main()
//block ends
cout
<< x << endl; //ok
cout
<< y << endl; //invalid,won't compile 此處的y是未宣告和初始化的變數
return
0;}
若是在如果在復合語句宣告了乙個變數,但是在復合語句外同時也宣告了這個變數,則復合語句的變數的值則只會在復合語句中使用,復合語句的變數會隱藏復合語句外的變數的值,但是復合語句結束後,變數會再次可見。
//p138
#include
int main()
//block ends
cout
<< x << endl; //use original x = 20
cin.get();
return
0;}
執行結果:
20
10020
//p140
#include
int main()
輸出結果
cats = 17, 240 = 17
(cats = 17), 240 = 17
cats = (17, 240) = 240
cats = (240, 17) = 17
word == "mate";
首先,陣列名是陣列的位址。同樣,右邊的字串的也是位址,因此這裡同時進行了位址的比較;
但是,兩個不一樣的位址,可能包含同乙個字串;
因此,比較需要利用函式strcmp()
進行比較。
首先,了解乙個ansi c和c++庫中的函式strcmp()
的用法該函式接受兩個字串位址作為引數,同時也可以是指標,字串常量或字元陣列名;
如果兩個字串相同,該函式將返回零;
如果第乙個字串按字母順序排在第二個字串之前,則
strcpy()
將返回乙個負數值;如果第乙個字串按字母順序排在第二個字串之後,則
strcpy()
將返回乙個正數值。
clock()
,會返回程式開始執行後所用的系統時間。
但是在標頭檔案ctime
提供了這些問題的解決方案。
它定義了乙個符號常量—「clocks_per_sec」,該常量等於每秒鐘包含的系統時間單位數。
而且,也將clock_t
作為clock()
返回型別的別名,這意味著可以將變數宣告未clock_t
型別,編譯器將把它轉換為long
,unsigned int
或合適系統的其他型別。
-- using clock() in a time-delay loop
#include
#include//describes clock() funtion,clock_t type
int main()
c primer plus第五章習題答案
迴圈是乙個簡單的事,但要明白for迴圈的執行原理 初始化 測試表示式?進入函式體 更新表示式 測試表示式?for和while迴圈都是先判斷條件再執行,do while是先執行再判斷條件,應該視情況不同而選擇 如下,注釋稍後再補 第一題 include using namespace std int ...
c primer plus第五章程式設計練習
1.編寫乙個要求使用者輸入兩個整數的程式,giant程式將計算並輸出這兩個整數之間 包括這兩個整數 所有的整數的和。這裡假設先輸入較小的整數,例如如果使用者輸入的是2和9,則程式將指出2 9之間所有整數的和為44.include using namespace std int main cout 3...
programming in lua 第五章筆記
當乙個函式只有乙個引數,而且這個引數的型別是字串或者table,那麼函式的 可以省略 函式的引數是乙個local變數 lua函式可以返回多個返回值 s,e string.find hello lua users lua print s,e 7 9 可以強制函式只返回1個返回值 print foo0 ...