1.首先就是sizeof和strlen的問題:
sizeof的資料型別是:size_t 返回資料的格式是:%lu
strlen的資料型別是:int 返回資料型別格式是:%d
strlen是個函式
sizeof 可以用型別做引數,strlen 只能用 char* 做引數,且必須是以 '\0' 結尾的。此外,sizeof 還可以用函式做引數
**如下:
#include #include int main()
輸出:size:12
strlen:11
所以sizeof計算的結果包括'\0', 而strlen是不包括的。
2.現在就得講講型別所定義的大小是問題了:
struct a;
sizeof(a)等於多少?
int佔4位元組
short 佔2位元組
double佔8位元組
所以總共是14位元組,但儲存的時候會採取位元組對齊的方式,所以sizeof(a)=16;
struct b;
在linux系統中 指標變數是佔8個位元組(這個跟作業系統是有關係的,在32位作業系統內是4個位元組)
變數b.a佔 4*3=12個位元組
b.b佔4個位元組
所以總共是24個位元組 採用位元組對齊方式, sizeof(b)=32;
char var[10];
int func(char var)
結果為:4 var 等價於 *var ,當陣列名以形參傳遞給函式時,已經退化為乙個指標。
void *func(void)
sizeof(func)=8(這個跟作業系統是有關係的,在32位作業系統內是4個位元組)。 C 基礎問題
1.傳指標時,我們可以通過指標來修改它在外部所指向的內容。但如果要修改外部指標所指向的物件是不可能的。例如傳遞外部指標到函式內來分配空間,必須傳遞指標的指標或指標的引用。2.char carry 10 編譯器會將其後所有的東西都置0 3.函式返回值為const時,返回的東西付給乙個型別相同的標示後其...
C 面試基礎問題
傳入某個屬性的set方法的隱含引數的名稱是什麼?value,它的型別和屬性所聲名的型別相同。如何在c 中實現繼承?在類名後加上乙個冒號,再加上基類的名稱。c 支援多重繼承麼?不支援。可以用介面來實現。被protected修飾的屬性 方法在何處可以訪問?在繼承或間接繼承與這個類的子類中可以訪問。私有成...
C 面試基礎問題
c 面試基礎問題 如果你的簡歷上面寫 熟悉 了解c 那麼你就應該能夠回答下面的這些基礎問題。下面給出的是簡要答案以供參考。如果是 精通 那麼請參考 http www.cnblogs.com dflying archive 2006 04 01 364458.html 傳入某個屬性的set方法的隱含引...