C語言寶典(持續更新)

2022-07-28 09:24:13 字數 1614 閱讀 5337

正確操作:

錯誤操作:編譯時報錯

double rate = ;

const

double locked = ;

const

double *pc = rate; /*

可以*/

pc = locked; /*

可以*/

const

double locked = ;

double *pc = locked; /*

不可以*/

/*

* 1、str1、str2、str5都指向了同乙個字串位址;

* 2、str3陣列有自己單獨的位址空間;

* 3、str4陣列在執行時為其分配空間並賦值,是靜態儲存區字串的副本;

* 4、格式化輸入輸出相同的字串也只有乙份;

*/#include

#define str1 "i am a student."

#define str2 "i am a student."

char str3 = "

i am a student.";

int main(void

)輸出結果:

0x1055c

0x1055c

0x21028

0x7eaeb1b4

0x1055c

the string size is:16

the string size is:16

the string size is:16

/*

部分資料段彙編**

*/str3:

.ascii

"i am a student.\000

".section .rodata

.align

2.lc0:

.ascii

"i am a student.\000

".align

2.lc1:

.ascii

"%p\012\000

".align

2.lc2:

.ascii

"the string size is:%u\012\000

".align

2.lc3:

.ascii

"the string size is:%d\012\000

"

總結:關於位元組對齊的兩條原則

#pragma pack(n)

原則一: 成員對齊,每個成員的偏移值必須是x的倍數,x = min(n, 該成員對齊寬度)

原則二: 結構體對齊,結構的總大小必須為y的倍數,y = min(n, 成員的最大對齊寬度)

例如,在linux 64位系統中,half占用6位元組,long占用8位元組,結構體testunion的大小為8位元組。成員half的對齊寬度為2,大小為6。d的對齊寬度為8。

程式設計原則 C 語言 持續更新

在使用c語言的過程中,經常會有許多意想不到的體會,所以在這裡想把他們都記錄下來 1.結構體賦值 typedef struct demo struct 對於如上的乙個結構體型別,通常賦初值的做法是 demo struct inst 1 危險 當結構體的成員有改變時,此行 就會變得危險 demo str...

C語言錯誤集 持續更新

錯誤 嚴重性 說明 專案 檔案 行 禁止顯示狀態 錯誤 lnk2005 main 已經在 01.obj 中定義 01 c users shy desktop xx 01 01 02.obj 1 原因 同乙個檔案中包含了兩個main 函式 警告 warning c4047 初始化 int 與 int ...

學習分享 C 語言(持續更新)

2 變數名 引用 指標 3 內聯函式inline 4 類5 封裝 6 繼承 7 多型 7.2 子型別多型 執行 7.3 引數多型 編譯 7.4 強制多型 編譯 執行 參考c 物件導向 我.吃 飯 c面向過程 吃 我,飯 1 常指標 const p 2 指向常量的指標 const p 3 指向常量的引...