1. 程式人生 > >C語言中數據類型和變量

C語言中數據類型和變量

括號 函數返回值 轉換 函數調用模型 行修改 接收 返回值 log 不能

C語言中的數據類型

技術分享

數據類型的本質,固定大小內存塊的別名。

數組名代表數組首元素的地址。

數組首元素的地址,&代表整個數組的地址。

數組數據類型,怎麽定義數據數組類型,定義數組類型指針,數組類型和數組指針類型的關系,很重要的。

可以使用sizeof求數據類型的大小。sizeof測量變量的大小在編譯期就已經完成。

可以通過typedef自定義數據類型。

數據類型的封轉

1、void的字面意思是“無類型”,void *則為“無類型指針”,void *可以指向任何數據類型的指針。

2、void修飾的函數返回值和參數,表示是無,如果函數沒有返回值,應該將函數聲明為void類型,如果函數沒有參數,應該將函數括號中用void來明確表示。

3、void指針的含義,C語言規定,只有同種類型的指針才能進行賦值,void* 作為左值的時候,可以接收任何類型的指針,void* 作為右值的時候,需要進行強制類型轉換。

4、不存在void類型的變量,在C語言中,沒有定義void應該分配多大的內存。

變量的三要素,名稱,大小,作用域

函數的三要素,名稱,參數,返回值

數據類型的思考

如何表達數組的數據類型?

函數可以看作是一種數據類型? 函數也是一種數據類型,是一種特殊的數據類型。

變量的本質,是既能讀又能寫的內存對象,若初始化之後不能修改的量稱之為常量。

變量的本質是一段連續內存空間的別名,是一個門牌號,通過變量來操作內存,對內存可讀可寫,通過變量往內存中讀寫數據。那麽變量跑哪裏去了?變量在代碼區中。

程序通過變量名來操作變量直行的內存空間。

通過變量修改內存的方法有兩中,一種是直接進行修改內存,另外一種是間接修改內存。

如果想要間接修改內存中的值,應該那到這個內存的地址,然後強制轉換成為對應類型的指針的地址,然後在通過*來操作這塊內存。

也就是說,內存是有地址編號的,拿到了這個地址編號就可以修改內存中的數據了。

內存空間可以多取幾個別名,C++引用就是幹這個事情的。

也就是說,對類型可以區別名,通過typedef,對內存空間也可以取別名,就是C++中的引用。

變量的生命周期,涉及到內存四區模型和函數調用模型。

*就像一把鑰匙,拿著這個鑰匙找到對應的內存空間,修改或者是得到內存空間中的值。

C語言中數據類型和變量