C語言經驗之談

2021-10-07 06:28:35 字數 1459 閱讀 2898

一、

int 10^9(9位數)

long long 10^18(18位數) long long bignum = 1234567890112345ll;

不要用float,碰到浮點型的資料都應該用double來儲存

二、0-9、a-z、a-z等都是可顯示字元,它們的ascii碼分別是48-57、65-90、97-122

小寫字母 = 大寫字母 + 32

三、\0代表空字元null,其ascii碼為0

四、字元陣列使用%s讀入的時候以空格跟換行為讀入結束的標誌,可以連續輸入多個字串。

scanf

("%s%s%s"

,str1,str2,str3)

;

%c格式是可以讀入空格跟換行的

五、int len = strlen(str);

int cmp = strcmp(str1,str2);

strcpy(str1,str2);//把字串2賦值給字串1(1變)

strcat(str1,str2);//把字串2接到字串1後面(1變)

六、十進位制轉化為r進製整數的規則是:除基取餘,逆序排列

七、%6.2f表示該實型資料在螢幕上所佔的寬度為6位,其中小數部分佔2位。

八、ctrl+z的組合鍵輸入的字元在計算機中對應的是eof結束標誌,表示輸入完畢。

九、浮點數進行全等比較是相當危險的。浮點數暴力破解很危險。浮點數只能說足夠接近,不能夠用精確比較的形式。

如下是錯誤的:

if

(0.2

+0.1

==0.3

)

改進策略一:

if

(fabs

(0.2

+0.1

-0.3

)<

1e-10

)

改進策略二:避開浮點數,使用整數,均擴大一定倍數

十、exit(1);需要引入標頭檔案#include

exit(1)表示異常退出,在退出前可以給出一些提示資訊,或在除錯程式中察看出錯原因。

exit(0)表示正常退出。

return是語言級別的,是關鍵字,它表示了呼叫堆疊的返回,return用於結束乙個函式的執行,將函式的執行資訊傳出個其他呼叫函式使用,如果返回的是main函式,則為退出程式。

而exit是系統呼叫級別的,是乙個函式,它表示了乙個程序的結束。 exit是在呼叫處強行退出程式,執行一次程式就結束。這個狀態標識了應用程式的一些執行資訊,這個資訊和機器和作業系統有關。

十一、c語言,對於for迴圈,continue之後會執行i++,但break之後不會執行i++。

十二、eof定義在標頭檔案中,是乙個整型數,eof = -1。

十三、malloc函式需要引入標頭檔案#include

C 語言程式設計 經驗之談

1 c語言的專案記憶體管理很讓人頭疼,自始至終你要明白哪些記憶體應該要釋放,哪些到最後才能釋放,不然的話,就會出現一些堆被破壞的錯誤 2 每寫乙個函式一定要記得寫它的測試程式,不管那個函式簡單的還是複雜,不然的話,到最後會忙死你,有時還會犯一些低階的錯誤。這個教訓我就犯過,寫了一大堆utility工...

面試經驗之談

這裡是2017年11月7日,鄙人不才,17年應屆畢業,經驗不足,十一之後來到上海找工作,目前一無所獲。無奈,今天又逛了一趟培訓機構,看著和自己年齡相仿同學在前台焦急等待的時候感觸頗深,為什麼總是接到培訓機構的邀請,而不見想象之中offer也看不見期待的公司的回覆。剛好有哥哥姐姐在上海這邊,所以借住在...

併發控制經驗之談

多年使用鎖的經驗說明,我們很難駕輕就熟地使用鎖。併發的管理本來就非常棘手,而許多使用方法都可能導致錯誤。本文將總結一些併發控制中容易導致錯誤的東西。不明確的規則 恰當的鎖定模式需要清晰和明確的規則。當我們建立乙個可被並行訪問的物件時,應該同時定義用來控制訪問的鎖。鎖定模式必須在一開始就安排好,否則其...