在某培訓機構的聽課筆記

2021-06-18 05:08:40 字數 2412 閱讀 4573

某實訓機構有些小坑,聽課加反省就當作對c語言的一種補充吧,哎~~~~,記錄給自己看看。

1.int a=9,b=10,d=9;是可以的。

2.%*d ,在scanf中使用的時候,是1整數但不賦給任何變數,有個小**:

[cpp]view plain

copy

print?

#include 

#include 

int main()    

#include #include int main()

a的值,你是賦值不進去的,僅僅佔位用的。

3.對於氣泡排序,怎麼在不完全執行完迴圈前就預先判斷,已經排序結束了:

在一次內層迴圈的時候,一次都沒有進行資料交換,就說名氣泡排序已經排序ok了。

4.不要總記得scanf,同樣還存在getchar()和gets()函式,gets能接收含有空格的字串,這個是scanf不能做到的。

scanf("%ls",a);  //接收有效字串的第乙個字元

scanf("%ns",a);   //這個是格式化輸入,接收字串的從頭開始的n個字元

其實我想說,scanf函式真心沒有什麼用,很不好的乙個函式。

5.堆區分配記憶體是從兩頭開始增長的,不是單向增長的。

6.typedef int [10]   其實[10]就是int了,個人覺得這個**風格,很不好,千萬不能寫成這樣,可讀性很差!

7.要記住函式在傳遞引數的時候,其實是資料的拷貝,直接對形參進行改變或者賦值,是毫無意義的,實參是不會改變的。對於指標也是一樣的。只有通過指標,取得了當前這個指標指向的內容的時候,改變了這個內容,這樣實參才會被改變。因為是直接改變了記憶體位址中儲存的數值。

舉個例子就是:在資料結構那節中的鍊錶,creat函式就是乙個典型的例子。仔細想想為什麼不能在main函式中定義乙個頭結點,再把這個頭結點的位址傳給creat函式呢?一定要通過creat返回乙個頭結點指標呢?再想想,為什麼在想通過形參獲得子函式中資料的時候,一定要傳入位址或者指標呢?然後再把想要獲得資料,寫入這個位址或者指標中去?

給一段**,幫助理解這個問題:

[cpp]view plain

copy

print?

#include 

#include 

typedef

struct _tag_str  

str;  

void fun(str* str1)  

int main()    

#include #include typedef struct _tag_str

str;

void fun(str* str1)

int main()

想想,為什麼子函式中賦值,在main中列印出來是不一樣的!!!

對於fun(strp)的過程是這樣的:在函式傳遞引數的時候,strp的值 賦值給了子函式的str1,這個過程就是函式引數拷貝的過程,然後str1的值在malloc的時候不幸被malloc改變了,所以在main中列印出來的不一樣。

對於fun(&str1)的過程是這樣的:在函式傳遞引數的時候,&str1的值  賦值給了子函式的str1,後面的過程跟上面一樣。所以在main中列印的也是不一樣的。

對於這種情況,最好的解決辦法就是利用函式返回值,把str1返回 回來就ok了!!!

注意:可能你會問了,那怎樣通過引數獲得子函式傳遞的值啊,其實很簡單,你在main中開闢好一段記憶體,然後把這個記憶體位址傳遞到子函式中去,然後對這個記憶體進行賦值,不要去改變這個指標的指向(即指標的值),僅僅改變指標指向的記憶體(即指標指向的內容),自然就獲得了你想要的值!

8.c語言檔案操作的乙個問題:

c語言中開啟檔案有兩種方式,一種是二進位制方式,另一種是文字方式(ascii碼方式)。這兩種方式有什麼區別?(對於linux這種只有一種檔案型別的作業系統來說是沒有區別的)

我們就以windows為例說說區別:

a.以文字方式開啟檔案,若將資料寫入檔案,如果遇到換行符'\n'(asii 值為10,0a),則會轉換為回車—換行'\r\n'(ascii值為13,10,0d0a)存入到檔案中,同樣讀取的時候,若遇到回車—換行,即連續的ascii值13,10,則自動轉換為換行符。

而以二進位制方式開啟檔案時,不會進行這樣的處理。

b.還有如果以文字方式開啟檔案時,若讀取到ascii碼為26(^z)的字元即0x1a,則停止對檔案的讀取,會預設為檔案已結束,而以二進位制方式讀取時不會發生這樣的情況。由於正常情況下我們手動編輯完成的檔案是不可能出現ascii碼為26的字元,所以可以用feof函式去檢測檔案是否結束。

所以,由於存在上面的兩個區別,我們在明確檔案型別的時候,最好使用相對應的方式對檔案進行開啟。對於那些不明確檔案型別的時候,最好使用二進位制方式開啟檔案。

在南京報名哪家FRM培訓機構比較好?

首先南京作為中華文明的重要發祥地,南京一直是我國南方的經濟中心,更是國家重要的科教中心,有 天下文樞 之稱。因而frm這個全球認可度極高的證書在南京也是很受歡迎。很多的考生希望通過自己的盡力為職業生涯打好基礎。那麼咱們應該怎樣去選擇frm培訓機構呢?1.不斷優化的授課體系 作為重要的金融考試,frm...

選擇合適的iOS培訓機構有技巧

選擇合適的ios培訓機構有技巧 在這個培訓行業興起的時代,讓眾多學子得到了新的學習機會,也為創造自己的幸福人生多了一條可以走的路,那姚如何選擇適合自己的ios培訓機構呢?選擇合適的ios培訓機構又有哪些技巧呢?在這裡我推薦廣州傳智播客ios培訓機構,廣州傳智播客成立於2010年,機構依託csdn整合...

優秀的培訓機構該如何培養學生?

作為乙個優秀的培訓機構來講,培訓的關鍵是提公升學生的學習思想 養成良好學習習慣,培養學生較強的自學能力,否則講再多的知識都還是少!老男孩培訓多年來正是在履行著這樣的教學理念和思路。動物園的動物,如果不培養野外生存能力訓練,放生了不會捕獵就是個等死。這是很多機構的現狀,甚至簡歷一提是某某機構放生的,直...