零基礎學程式設計(6)——常見關鍵字、#define 定義常數和宏

2020-08-12 21:00:46

宣告在前

圖中用於展示程式程式碼的軟體是Visual Studio 2019 社羣版,在微軟官網即可下載,本人目前是大四,非計算機專業學生,零基礎學程式設計系列爲本人自學筆記及心得,文章中如有錯誤,歡迎各位批評指正,希望與大家一起學習進步。

一、常見關鍵字

auto 、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while、

注:規定變數名不能和關鍵字重合

auto:自動
區域性變數前面都有,自動建立,自動銷燬,一般省略
break:回圈語句中停止回圈
case:開關語句的一個組成部分
char:字元型別
const:修飾常變數
continue:繼續,回圈語句裡
default:預設
do:do_while回圈
double:數據型別
else:if_else語句
enum:列舉
extern:引入外部符號
extern int ADD(int a,int b);//宣告外部函數進行使用

float:單精度浮點數
for:for回圈
goto:goto 語句,跳轉
if:if_else語句
int:整型
long:長整型
register:暫存器關鍵字
register int a=1;//以後a經常使用,建議把a定義爲暫存器變數,

計算機儲存數據:暫存器、快取記憶體、記憶體、硬碟、
從左到右:存取速度逐漸變慢,記憶體空間逐漸增大,造價逐漸便宜
記憶體中數據存到快取記憶體,快取記憶體存到暫存器,CPU處理數據從暫存器依次往下讀取

return:返回
short:短整型
signed:int定義的變數是有符號的,全名是signed int,通常把signed省略
sizeof:計算大小
static:修飾變數和函數;修飾區域性變數/全域性變數/函數——靜態區域性變數/靜態全域性變數/靜態函數
(1)靜態區域性變數——改變的是生命週期
本來的區域性變數進入執行一次,建立一次再銷燬一次;
static修飾的區域性變數進入執行一次,建立執行後不銷燬,下次進入執行採用上一次的結果。

void test()
{
    static int a=1;//static修飾區域性變數,使區域性變數的生命週期變長
    a++;
    printf("a=%d\n",a);//沒有static時輸出22222,現在輸出23456
}
int main()
{
    int i=0;
    while(i<5)
    {
        test();
        i++;
    }
}

(2)靜態全域性變數——改變的是作用域
讓靜態的全域性變數只能在自己所在的原始檔內部使用,出了原始檔就沒法再使用了;
(3)靜態函數——改變了函數的鏈接屬性
把函數的外部鏈接屬性改變成了內部鏈接屬性(即由允許被其他原始檔參照改爲不可被參照);

struct:結構體關鍵字
switch:switch語句
typedef:型別定義——型別重定義
unsigned int a=1;//a是無符號數
typedef unsigned int u_int;//重新定義型別的名字,使長型別名簡單化
u_int b=1;//b和a型別一樣

union:聯合體/共用體
unsigned:unsigned int 無符號數
void:無/空
while:while回圈
volatile:(用的較少,後期再瞭解)

二、#define 定義常數和宏

(1)#define定義識別符號常數

#define MAX 1000;

(2)#define定義宏——帶參數
#define ADD(x,y) ((x)+(y))

例子:

int MAX(int x,int y)//函數
{
    if(x>y)
        return x;
    else
        return y;
}

#define MAX(x,y) (x>y?x:y)//宏定義的方式,與上面函數形式表示的意思一樣

int main ()
{
    int a=1;
    int b=2;
   
     //函數形式
    int max=MAX(a,b);
    printf("%d\n",max);
   
     //宏定義的方式
    max=MAX(a,b);//即:max=(a>b?a:b);
    printf("%d\n",max);
    
    return 0;
}

至此,本部分結束。因爲對程式設計及計算機語言沒有太多的基礎,所以寫的過於詳細,主要作爲我個人的學習記錄,也希望能幫到跟我一樣零基礎但是想學習程式設計的同學。