C 語言細節總結

2021-10-09 00:23:20 字數 2488 閱讀 4949

#include

intmain()

;int int2[10]

=;double double1=

;double double2[10]

=;printf

("sizeof(str1) = %d, sizeof(str2) = %d\r\n"

,sizeof

(str1)

,sizeof

(str2));

printf

("sizeof(int1) = %d, sizeof(int2) = %d\r\n"

,sizeof

(int1)

,sizeof

(int2));

printf

("sizeof(double1) = %d, sizeof(double2) = %d\r\n"

,sizeof

(double1)

,sizeof

(double2));

getchar()

;return0;

}

執行結果:

sizeof

(str1)=6

,sizeof

(str2)=10

sizeof

(int1)=20

,sizeof

(int2)=40

sizeof

(double1)=40

,sizeof

(double2)

=80

分析:

初始化陣列時,如果陣列下標為空,系統則按照後面元素個數為參考,去分配陣列記憶體空間大小。

初始化陣列時,如果陣列下標不為空,系統則按照下標,去分配陣列記憶體空間大小。

示例:

#include

#define array_length(x) sizeof(x)/sizeof(x[0])

intmain()

;int int2[10]

=;double double1=

;double double2[10]

=;printf

("sizeof(str1) = %d, sizeof(str2) = %d\r\n"

,sizeof

(str1)

,sizeof

(str2));

printf

("sizeof(int1) = %d, sizeof(int2) = %d\r\n"

,sizeof

(int1)

,sizeof

(int2));

printf

("sizeof(double1) = %d, sizeof(double2) = %d\r\n"

,sizeof

(double1)

,sizeof

(double2));

printf

("array_length(str1) = %d, array_length(str2) = %d\r\n"

,array_length

(str1)

,array_length

(str2));

printf

("array_length(int1) = %d, array_length(int2) = %d\r\n"

,array_length

(int1)

,array_length

(int2));

printf

("array_length(double1) = %d, array_length(double2) = %d\r\n"

,array_length

(double1)

,array_length

(double2));

getchar()

;return0;

}

輸出結果:

sizeof

(str1)=6

,sizeof

(str2)=10

sizeof

(int1)=20

,sizeof

(int2)=40

sizeof

(double1)=40

,sizeof

(double2)=80

array_length

(str1)=6

,array_length

(str2)=10

array_length

(int1)=5

,array_length

(int2)=10

array_length

(double1)=5

,array_length

(double2)

=10

C語言細節

參考 注釋必須和 一起維護,不應該描述顯而易見的事,或把別的地方已說清楚的東西在說一遍。字面常量沒有語義,也沒有真正的記憶體位址。所以不可以取其位址,也不可以用於初始化普通引用,例如 long r1 40000 但是const long r1 40000 卻是合法的。所以,盡量不要使用字面常量,而應...

C語言細節

a b 先賦值再自增 a b先自增再賦值 float 6 4是1.500000 float 6 4 是1.000000 原始檔.c 目標程式.obj 執行程式.exe 都是二進位制檔案 源程式以ascii 形式存於文字檔案 c程式演算法可無輸入必須要有輸出 三種基本結構可以完成任何複雜的任務 大括號...

C語言細節

1.c誰呼叫了main函式 linux執行乙個程式就是建立乙個新程序,然後把這個程式丟到這個程序中執行直到結束。linux通過.task執行程式,新程序作為命令程序的乙個子程序執行。main函式的返回值最終會返回給父程序。父程序的引數傳遞給子程序。2.void型別的本質 void的意思是乙個變數還不...