第十七天C高階 值與型別 指標變數

2021-09-30 01:19:16 字數 963 閱讀 5263

對於c語言,不同型別的值本質上都是由固定位數的值(例如32位),只不過編譯器幫我們產生指令,將值解釋為某種型別(例如float,當程式訪問float型變數,編譯器就會產生浮點型指令)。

float c =

3.14

;//變數c的型別是float

float

*e =

&c;//指標變數e的型別就是(float *),指向的是float變數的位址

//因此,指標變數e自身存放的值一般都是整數,而不會因此莫名其妙變成浮點數

對指標變數賦值時,一般會選擇賦乙個已宣告變數的位址值又或者是陣列頭(本質上也是已宣告變數的位址值),而不會莫名奇妙單獨賦乙個常量,因為不知道哪個變數的位址值等於這個常量。如果表示指標變數不指向任何東西的話,建議使用null空指標。

雖然指標變數(int *)儲存的值看起來是整數,但不能夠將這個位址整數值賦值給整型變數(int),因為這兩個變數型別不一樣,不能互相轉換。反過來,將整型變數(int)賦值給指標變數(int *)也不行。這兩種賦值方式都是非法(illegal)的。

學這一章節本質上是為了清楚、熟悉最基本的指標表示式(即*和&)怎麼使用,而不是知道很多很多的指標表示式。同時,連帶的還需要知道左值和右值

&a只能作為右值,表示取a變數/指標變數的位址值(因為位址自身也是乙個值)

*a作為右值,表示取 的值

*a作為左值,表示取a指標變數指向的位址位置(這時候的位址表示位置而不是位址值)

*a+1只能作為右值,表示先取 的值,再將這個值+1

*(a+1)作為右值,表示先取a指標變數指向的位址值,然後將位址值+1得到新的位址值,最後取 新位址位置對應的變數 的值

*(a+1)作為右值,表示取新位址位置

++a只能作為右值,相當於*(a+1),表示取新的位址值

C 高階學習第十七天

2 fileinfo類 3 directory類 絕對路徑 string path users neworigion desktop a.txt 相對路徑 b.txt 當前目錄是當前程式生成的可執行檔案的目錄 file.create path file.delete path 對檔案內容的一種資料快...

打卡第十七天

第二次了,又沒過.有時候會有一種失敗感,這幾年好像什麼都沒做好,過的好像也不是很開心。昨天兵查過成績後心情就低落起來了,尤其是聽到晨晨得知她沒過時發出的驚訝聲音 你竟然沒過?時,心情立馬跌到了谷底,回到宿舍就再也繃不住了,大哭了一場,媽媽打 詢問情況,看到女兒哭的傷心,竟也無措起來,不知如何安慰。於...

失業第十七天

失業過了十七天,今天進行了第三場面試,說來也巧有好幾個同學在面試的公司,哈哈哈 找個角落了解下內幕 每個公司都有各自的風格,每個面試官也有各自的特點,才面了三家公司就感受到了完全不同的形式,只有hr面試的內容基本相似,簡單說說吧 第一家 技術面試筆試 上機面試內容就聊聊題目,接著聊聊學校生活,在聊的...