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萬之間時...