深入理解C語言基礎(chǔ)要點(diǎn)及相關(guān)注意事項(xiàng)
---C語言負(fù)數(shù)表示及補(bǔ)碼機(jī)制在C語言中使用補(bǔ)碼表示負(fù)數(shù)時(shí),需要注意負(fù)數(shù)的表示和范圍。例如,char c 128; 在打印時(shí)結(jié)果是-128,這是因?yàn)閏 1000 0000表示負(fù)數(shù),補(bǔ)碼表示為-(0
---
C語言負(fù)數(shù)表示及補(bǔ)碼機(jī)制
在C語言中使用補(bǔ)碼表示負(fù)數(shù)時(shí),需要注意負(fù)數(shù)的表示和范圍。例如,char c 128; 在打印時(shí)結(jié)果是-128,這是因?yàn)閏 1000 0000表示負(fù)數(shù),補(bǔ)碼表示為-(0111 1111 1)-128。另外,負(fù)數(shù)的反碼是其原碼除符號(hào)位外其他位取反,補(bǔ)碼則是取反碼后加1。補(bǔ)碼的出現(xiàn)解決了0和-0的問題。
---
指針分配與合法訪問問題
在動(dòng)態(tài)分配內(nèi)存時(shí),需要注意指針的合法性。例如,char *p malloc(20); if (NULL p) printf("error..."); else printf("right..."); 在賦值"abc"給p時(shí)能夠分配成功,但存在非法訪問問題,因?yàn)閜僅僅引用"abc"的首地址。
---
浮點(diǎn)型數(shù)據(jù)長度及常量類型
浮點(diǎn)型數(shù)據(jù)包括單精度、雙精度和長雙精度,分別具有不同的有效數(shù)字長度。單精度為7位,雙精度為16位,長雙精度為19位。同時(shí),需要注意浮點(diǎn)常量默認(rèn)為double型。
---
char型與int型關(guān)系
char型可以看作是int型的一種,在某些情況下可以相互轉(zhuǎn)換使用。
---
枚舉類型大小及定義
枚舉類型在C語言中的定義和大小是需要注意的,使用sizeof(enum week)和sizeof(myweek)都會(huì)得到值為4。
---
指針常量與字符串常量區(qū)別
唯一的指針常量是NULL,需要注意數(shù)組名也是指針常量,而字符串常量出現(xiàn)在表達(dá)式中時(shí),引用的是該字符串常量的首地址。
---
變量存儲(chǔ)方式及static修飾
變量的存儲(chǔ)方式包括靜態(tài)存儲(chǔ)(如static修飾的變量)和動(dòng)態(tài)存儲(chǔ)(如棧中的局部變量)。static修飾可改變變量生命周期和作用域范圍。
---
typedef和const的作用
typedef用于提高程序的可移植性,簡化聲明;const用于定義只讀變量并節(jié)省空間。宏定義會(huì)產(chǎn)生多份拷貝,而const在編譯期間不分配存儲(chǔ)空間。
---
自動(dòng)類型轉(zhuǎn)換規(guī)則及格式輸出
C語言中存在自動(dòng)類型轉(zhuǎn)換規(guī)則,以及%s格式輸出時(shí)需要注意遇到結(jié)束符''。避免寫入常量區(qū)導(dǎo)致段錯(cuò)誤,正確處理指針指向的常量區(qū)。
---
數(shù)組名與二維數(shù)組指針關(guān)系
二維數(shù)組名指向數(shù)組首元素的首地址,需要注意數(shù)組名和數(shù)組指針的不同存儲(chǔ)方式和偏移量。
---
C語言內(nèi)存分配與存儲(chǔ)區(qū)域
C語言內(nèi)存分配涉及堆區(qū)(malloc、free)、棧區(qū)(自動(dòng)分配)、數(shù)據(jù)段(靜態(tài)變量和全局變量)、常量區(qū)(只讀數(shù)據(jù)段)、BSS段(未初始化的數(shù)據(jù)段)等,需要正確理解各個(gè)存儲(chǔ)區(qū)域的特點(diǎn)和使用方式。
---
通過以上詳細(xì)介紹,希望您能更深入地理解和掌握C語言基礎(chǔ)知識(shí),確保在學(xué)習(xí)和應(yīng)用中能夠避免常見錯(cuò)誤,提高編程效率。如有更多相關(guān)問題,歡迎訪問深圳達(dá)內(nèi)IT培訓(xùn)中心官方網(wǎng)站,與我們的專家在線交流。