指標帶來的一些符號的理解

2022-05-06 04:36:08 字數 983 閱讀 8815

指標帶來的一些符號的理解

我們寫的**是給編譯器看的,**要想達到你想象的結果,就必要編譯器對你的**的理解和你自己對**的理解一樣。編譯器理解**就是理解的符號,所以我們要正確理解c語言中的符號,才能像編譯器一 樣思考程式、理解**。

星號*(1) c語言中*可以表示乘號,也可以表示指標符號。這兩個用法是毫無關聯的,只是恰好用了回乙個符號而已。

(2) 星號在用於指標相關功能的時候有兩種用法:第一種是指標定義時,*結合前面的型別用於表明要定義的指標的型別

第二種功能是指標解引用,解引用時*p表示p指向的變數本身

取位址符&

(1)取位址符使用時直接加在個變數的前面, 然後取位址符和變數加起來構成一 個新的符號,這個符號表示這個變數的位址

指標定義並初始化、與指標定義然後賦值的區別

(1)指標定義時可以初始化,指標的初始化其實就是給指標變數賦初值(跟普通變數的初始化沒有任何本質區別) 

(2)指標變數定義同時初始化的格式是:int a = 32 ,int *p = &a; 

不初始化時指標變數先定義再賦值;int a = 32;  int *p; p = &a; 正確

*p=&a; 錯誤

#include void

main()

左值與右值

(1)放在賦值運算子左邊的就叫左值,右邊的就叫右值。所以賦值操作其實就是:左值 = 右值;

(2)當乙個變數做左值時,編譯器認為這個變數符號的真實合義是這個變數所對應的那個記憶體空間:當乙個變數做右值時,編譯器認為這個變數符號的真實含義是這個變數的值,也就是這個變數所對應的記憶體空間中儲存的那個數。

(3)左值與右值的區別,就好象現實生活中「家"這個字的含義。譬如「我回家了」,這裡面的家指的是你家的房子(類似於左值) :但是說「家比事業重要」,這時候的家指的是家人(家人就是住在家所對應的那個房子裡面的人,類似於右值)

#include int main(void

)

3 2指標帶來的一些符號的理解

我們寫的 是給編譯器看的,要想達到你想要的結果,就必須要編譯器對你的 的理解和你自己對 的理解一樣。編譯器理解 就是理解符號,所以我們要正確理解c語言中的符號,才能像編譯器一樣思考程式 理解 1 c語言中 可以表示乘號,也可以表示指標符號。這兩個用法是毫無關聯的,只是恰好用了同乙個符號而已。2 在用...

c指標的一些理解

c語言所有複雜的指標宣告,都是由各種宣告巢狀構成的。如何解讀複雜指標宣告呢?右左法則是乙個既著名又常用的方法。不過,右左法則其實並不是c標準裡面的內容,它是從c標準的宣告規定中歸納出來的方法。c標準的宣告規則,是用來解決如何建立宣告的,而右左法則是用來解決如何辯識乙個宣告的,兩者可以說是相反的。右左...

關於指標的一些理解

指標陣列是陣列,是乙個存放指標的陣列。eg int arr1 10 整形指標陣列,有十個元素,每個元素都是整形指標。char arr2 4 字元指標陣列,有四個元素,每個元素都是字元指標。char arr3 5 陣列有5個元素,每個元素是字元型的二級指標。陣列指標是指標,是乙個指向陣列的指標。eg ...