c語言的一些基礎知識

2022-03-03 16:13:12 字數 1015 閱讀 6214

c語言作為經典語言,這裡不再多說了.咱從基礎一起**吧!

一. 定義乙個整型,如果作為區域性變數,沒有初始化的情況下,它是乙個隨機的值的,一般情況下輸出會是0,但這個0是作為垃圾值的;而如果作為全域性變數,沒有初始化的情況下,它的值是0.    

二.我們都知道,static是用於宣告乙個內部全域性變數,在使用static的時候,並不會在記憶體中重新開闢一塊儲存空間的,那麼它的優越性是時候發揮作用了,如果當某個方法的呼叫頻率非常高,而該方法中有寫變數的值是固定不變的,如果我們使用static來修飾該變數,讓該變數只開闢一次儲存空間,在執行過程中就可以提高程式的效率和效能了.

三.帶引數的巨集定義一些細節.如果說我們使用乙個帶引數的巨集定義去做一些簡單的運算,少量的**可能顯示不出他的優越性,但在成千上萬行**中,能為整個軟體程式執行提高不少效能勒!                  例如乙個簡單的例子,int a = 10;int b = 20;計算結果可以int res = a + b;使用巨集定義應該這樣的:在main函式外面先#define sum(v1,v2)(v1+v2)            在main函式裡面直接實現    int res = sum(a,b);    看似沒有區別,從執行原理來看,巨集定義讓程式執行的直接拿到的是(10 + 20)去運算,而沒有使用巨集定義要先讓a和b分別賦值後再運算,是多走了一步"彎路"的.

四.提到巨集,應該會想到typedef,define和typedef中有一些細節,可能有些朋友不會注意到,如果說要給指標型別變數"起別名",當使用define的時候會有什麼"意外"發生呢?   好,我先來乙個#defiine my_string char *                 在main函式裡面呼叫my_string name1,name2;   會出現什麼後果呢,結果告訴你,會有bug的. 原因是因為my_string name1,name2====char *name1;char name2;  我個人通俗點說,就是name2"吃不到*",作為指標變數,沒有*執行當然會報錯了!

不足之處還望指出,感激不盡!

-----奈文摩爾

C語言的一些基礎知識

不是我愛熬夜,而是黑夜需要,我這顆璀璨的星。自己對c語言知識的一些記錄 常被當做int或unsigned int型別處理 定義 enum 列舉名 enum color 預設red 0,green 1,black 2,也可以自己設定 使用 color red 直接使用名稱red賦值,color 0 列...

關於C語言的一些基礎知識

1 32個關鍵字 資料型別 void 無型別,用於函式返回值 引數 指標 unsigned signed 整型的型別說明 char short int long 整數型別 float double 浮點型 struct union enum 結構 聯合 列舉 auto 自動建立 銷毀 const 常...

C語言程式設計的一些基礎知識

源程式的命名要以 c 結尾 一般使用gcc編譯器進行編譯 注釋 1.單行注釋 2.多行注釋 注釋十分重要,不可省略,應當表述清楚明白 代表預處理指令的開始 include 代表包含 stdio.h 代表標準輸入輸出庫 是系統環境中 提供的編寫好的一部分函式 表示引用系統環境當中提供的庫檔案 函式的基...