C primer plus 第五章筆記

2021-08-13 06:03:16 字數 2032 閱讀 1034

因為迴圈體必須是一條語句,但是使用過程中,多條語句也是不可避免的。因此就可以將多條語句,利用一對花括號來構造一條復合語句(也稱為**塊,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()進行比較。

strcmp()的用法

該函式接受兩個字串位址作為引數,同時也可以是指標,字串常量或字元陣列名;

如果兩個字串相同,該函式將返回零;

如果第乙個字串按字母順序排在第二個字串之前,則strcpy()將返回乙個負數值;

如果第乙個字串按字母順序排在第二個字串之後,則strcpy()將返回乙個正數值。

首先,了解乙個ansi c和c++庫中的函式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 ...