C 到底應該怎麼學?

時間 2021-05-06 15:37:06

1樓:

「應該怎麼學「,我覺得並沒有乙個適用於所有人的方法,因為每乙個人的精力,知識背景都不相同,最多不過是大家把自己學習c++的經歷分享出來,是否適合你,你要自己鑑別,不要一味模仿,浪費了自己寶貴的時間

結合自己的實際情況

2樓:

我補充一下關於字串格式化的問題,使用純C的話如果你需要知道確切的buf大小,可以使用vsnprintf預先計算一遍。vsnprintf在buf指標傳入NULL的時候不會寫入,而是單純的去計算格式化結果的字串長度(不含末尾'\0')。可以包裝成乙個這樣的東西:

char

*malloc_sprintf

(const

char

*format

,...)

但是既然都使用C++了為什麼不去用stringstream(或者C++20的format)?

3樓:xchg

只寫一些自己知道的。

1.char*t="test",這個表示式你覺得算合法嗎?

右邊是乙個const char*,左邊是char *,把常量指標賦值給變數指標?

//經網友的指正,這個表示式在c語言是合法的,c++中是不合法的,而且"test"的型別應該為const char[5]

2.因為有些語言有異常處理機制,至於要不要判斷返回值,因人而異吧,我是比較喜歡判斷的。

你這邊用的都是C風格API,也不關c++的事。

4.了解一下snprintf(C99) (GCC支援),sprintf_s(vs忘記了哪個版本開始支援的)。

int snprintf(char *str, size_t size, const char *format, ...)

當size引數為0時,返回值就是計算所需緩衝區長度(好像是不包括終止符的,忘記了)

反正大量的C庫函式,後來都有乙個安全的版本。

我覺得c的槽點算很少了,c++槽點多到不想說。

演算法到底應該怎麼學?

學習演算法 首先從數學開始 玩過ACM國際比賽 都知道比賽 都是數學基礎。學習演算法 重要 還是在於思路 解題思路 跟數學一樣。提問者出的題目 叫你解題。那麼演算法 出演算法作者 就是叫你解析他出這道演算法題目。比賽 也是一樣。我也不給你提供任何為什麼要從數學入手學習演算法 但我介紹 兩位數學家以及...

數學到底應該怎麼學?

小小老師 很多學生都在數學頭疼,數學對於他們來說簡直就是致命的弱點。那麼究竟怎樣才能學好高中數學呢?1 認真聽講 上課認真聽講,跟著老師的思路去思考,學習起來就會很容易,上課的時候一定要聚精會神,並且將一些有疑問的地方及時記錄下來。2 多多刷題 想要學好數學僅僅靠聽是遠遠不夠的,所以說除了認真聽課還...

高中歷史到底應該怎麼學

星橙 高中歷史無非那幾本書,第一肯定是要背的滾瓜爛熟的,特別是史實,年份,事件連在一起,自己做時間軸,把題目和答案連起來背,多用專業術語,到了高三做文綜試題的時候也就會輕鬆一點。當天知識當天背完,不要日積月累多到期末或者高三再來,那樣真的很累,老師總結的時候認真聽,那樣也方便複習,選擇題用排除法比較...