C語言 近期學習整理

2021-08-11 19:24:51 字數 1009 閱讀 5073

1、sizeof和strlen有哪些區別?

區別如下:

(1)sizeof是操作符,strlen是函式。

(2)sizeof操作符的結果型別是size_t,它在標頭檔案中typedef為unsignedint型別,該型別保證能容納實現所建立的最大物件的位元組大小。

(3)sizeof可以用型別做引數,strlen只能用char*做引數,且必須是以「\0」結尾的。

(4)陣列做sizeof的引數不退化,傳遞給strlen就退化為指標了。

(5)sizeof在編譯的時候已經計算完畢了,所以sizeof可以測資料型別,strlen的結果在執行的時候計算,而且只是用來計算字串長度,不能計算型別長度。

(6)sizeof後如果是型別,必須加括弧,如果是變數名,可以不加括弧。

(7)在計算字串陣列的長度上有區別。例:

[cpp] view plain copy

char str[20] = "0123456789";  

int a = strlen(str);  

int b = sizeof(str);  

a計算的是字串的長度,為10

b計算的str的記憶體空間,為20

(8)如果要計算指標指向的字串長度,必須使用strlen。

2、聯合體的大小取決於它所有的成員中占用空間最大的乙個成員的大小,並且對於復合資料型別,如union、struct、class的對齊方式為成員中最大的成員對齊方式。

3、#pragma pack(1)的作用就是將對齊方式設為1。

4、<>表示這個檔案是乙個標準標頭檔案,查詢時,編譯器直接去預定義的目錄,可以在編譯器的設定裡面更改目錄。「」表示這個檔案是程式設計師自己寫的工程中的標頭檔案,查詢該檔案時,先從當前目錄查詢,然後到標準位置尋找。

5、&&是邏輯與  即判斷&&兩側的表示式是否都為真,都為真則此&&表示式值為真;& 是按位與 即將&兩側的數用二進位制展開,每一位都求與運算(二進位制與運算,跟邏輯與差不多),最後得到的二進位制數即為結果;邏輯與結果只講真和假,而按位與得出的卻是實實在在的乙個數。

Linux入門 近期學習整理

前幾天去了下洛陽玩。回來之後就連續看到了編寫應用程式 不過今天和訊為的技術支援聊了一下,他給我發了一下聊天記錄主要是告訴乙個新人如何入門 總結一下就是 這些都是訊為技術人員提供的 uboot 就是乙個bootloader作為引導,uboot 檢測記憶體,儲存等裝置,並且設定處理器等裝置的時鐘等等,期...

近期題目整理 6 1

計算 sum x j mod 其中,p 為質數,n le10 9 結論很簡單,以下式子成立 sum xj mod 0 那麼我們只要求最後3項就可以獲得答案 這個結論可以依靠打表獲得,比賽時很多隊依靠打表發現了結論輕鬆的過了這題,而我們的電腦空閒長達1個小時卻沒有嘗試打表。對於一些沒有思路的題目不妨可...

近期的一些學習計畫整理

近期 乙個季度內 的學習有兩個主線 1 工作中,以軟體架構為主,主要的三本資料 面向模式的體系結構,分析模式,企業應用架構 2 業餘以python為主,另外,使用python做乙個東西。除此之外,有兩本書基本讀完 黑客與畫家,程式設計人生。寫個總結。另外讀一下設計原本和軟體開發隨想錄。作為主線的乙個...