C語言上機100例 part05

2021-10-04 06:21:11 字數 2159 閱讀 8885

41.學習 static 定義靜態變數的用法

functions.h

void fun41(

)

test.cpp

#include

#include"functions.h"

void main(

)

區域性變數 notes:

1.普通區域性變數(無static修飾符):如int a;

編譯器不對其進行初始化。若沒有賦值,它的值是隨機的。

普通區域性變數儲存於程序棧空間,使用完畢會立即釋放。

2.靜態區域性變數(有static修飾符) : 如 static int a;

在沒有賦初值的情況下,編譯器會把它初始化為0;

靜態區域性變數儲存於全域性資料區,即使函式返回,它的值也不變。

42.學習使用 auto定義變數的用法

void fun42()}

}

auto關鍵字 notes:沒有關鍵字修飾的變數其實都是auto。

auto的出現意味著,當前變數的作用域為當前函式或**段的區域性變數,意味著當前變數會在記憶體棧上進行分配。

43.學習使用 static 的另一用法。

void fun43()}

}

44.學習使用external的用法。

int a,b,c;

void fun44(

)

void main(

)

執行結果:

notes: static和external定義的全域性變數區別:

注意:用static定義的全域性靜態變數可以被模組內所有的函式訪問,但不能被模組外其他函式訪問。而用external定義的全域性。

1、static修飾全域性變數時,宣告和定義是同時給出的;而extern一般是定義和宣告分開,且定義只能一次,但可以宣告多次。

2、static的全域性作用域只是自身編譯單元(即乙個.c檔案以及這個.c檔案所包含的.**件);而extern的全域性作用域是整個工程(乙個工程可以包含很多個.h和.c檔案)。即區別就在於「全域性」的範圍是整個工程,還是自身編譯單元。

45.學習使用register定義變數的方法。

void fun45(

)

register:

用register宣告的變數是暫存器變數,是存放在cpu的暫存器裡的。而我們平時宣告的變數是存放在記憶體中的。雖說記憶體的速度已經很快了,不過跟暫存器比起來還是差得遠。

暫存器變數和普通變數比起來速度上的差異很大,畢竟cpu的速度遠遠大於記憶體的速度。暫存器有這麼兩個特點,乙個是運算速度快,乙個是不能取位址。

學過c的都應該知道每乙個變數在記憶體中都占有一定的的空間,來存放資料。但是在暫存器中的變數是不能取位址的,編譯器會報錯。

46.巨集#define 命令練習1

#define true 1

#define false 0

#define sq(x) (x)*(x)

void fun46(

)}

47.巨集命令練習2

#define exchange(a,b)

void fun47(

)

48.巨集命令練習3

其實巨集命令就是簡單的字串替換

#define lag >

#define sma <

#define eq ==

void fun48(

)

49.#if #ifdef 和#ifndef 的綜合應用。

#define max

#define maximum(x,y) (x>y)?x:y

#define minimum(x,y) (xvoid fun49(

)

C語言上機100例 part04

31.請輸入星期幾的第乙個字母來判斷一下是星期幾,如果第乙個字母一樣,則繼續 判斷第二個字母。void fun31 32.題目 press any key tochange color,do youwanttotryit.please hurryup void fun32 注意標頭檔案include...

C語言100例之39

程式39 題目 有乙個已經排好序的陣列。現輸入乙個數,要求按原來的規律將它插入陣列中。1.程式分析 首先判斷此數是否大於最後乙個數,然後再考慮插入中間的數的情況,插入後此元素之後的數,依次後移乙個位置。2.程式源 main int temp1,temp2,number,end,i,j printf ...

C語言經典100例 002

企業發放的獎金根據利潤提成.利潤 i 低於或等於10萬元時,獎金可提10 利潤高於10萬元,低於20萬元時,低於10萬元的部分按10 提成,高於10萬元的部分,可可提成7.5 20萬到40萬之間時,高於20萬元的部分,可提成5 40萬到60萬之間時高於40萬元的部分,可提成3 60萬到100萬之間時...