指標之初認識與分析。

2021-08-19 22:47:33 字數 1269 閱讀 2556

今天讓我們一起來認識c語言中最棒的指標。首先指標是什麼呢?簡單的說,指標就是位址。但是它的完整定義是:指標是程式語言中的乙個物件,利用位址,它的值直接指向存在電腦儲存器中另乙個地方的值。由於通過位址能找到所需的變數單元,可以說,位址指向該變數單元。因此,將位址形象化的稱為指標。意思是通過它能找到以它為位址的記憶體單元。

總結1:指標變數就是變數,用來存放位址的變數。(存放在指標中的值都被當成位址處理)。同時我們也要明白:(1)在32位的機器上,位址是32個0或者1組成二進位制序列,那位址就得用4個位元組的空間來存放,所以乙個指標變數的大小就應該是4個位元組。(2)如果在64位機器上,如果有64個位址線,那乙個指標變數的大小是8個位元組,才能存放乙個位址。

指標的運算:(1)指標+-整數。例如:

#includeint main()

第乙個,第二個,第四個位址的值一樣,第三個是頭位址+1,第五個是頭位址+4,。

pc:變數名。&pc:變數的位址。*pc:n的第乙個位元組。總結來說,對指標解引用就是它所指向的目標變數。同時,作用變數的儲存空間為左值,變數的內容為右值。指標的型別決定了指標向前或者向後走一步有多大。

指標的解引用舉例:

#include#includeint main()

結果pc的記憶體變成了0x11223355.所以說指標的型別決定了對指標解引用的時候有多大的許可權。

指標表示式解析:

char ch='a';

char *cp=&ch;

&ch;              //是位址常量,不能做左值,可以做右值。

cp;               //是常量,可以做左值,可以做右值。

&cp;              //是位址常量,不能做左值,可以做右值。

*cp+1;            //是常量,不可以做左值,可以做右值。

*(cp+1);          // 表示之後的一塊空間,可以做左值,可以做右值。

++cp;              //不可以做左值,可以做右值。

cp++;              //不可以做左值,可以做右值。

*++cp;             //表示下一塊空間,可以做左值,可以做右值。

指標的運算(2)指標-指標:兩個指向同一陣列相減代表兩個指標之間元素的個數。標準規定:允許指向陣列元素的指標與指向陣列最後乙個元素後面的那個記憶體位置的指標比較,但是不允許與指向第乙個元素之前的那個記憶體位置的指標進行比較。



UML之初認識

最近在學習 uml,如果你是第一次碰觸到 uml,那麼多少油一點害怕吧 那麼今天就讓我來向大家簡單的介紹一下吧。假如你是乙個程式設計師 那麼在你去乙個公司要半路接手乙個專案時 你不會是想看看 前輩們 的 吧 上萬行的 看完估計都到年底了 假如現在是年初 那還得保證他的 清晰 你的承受能力同時要好的不...

機器學習之初步認識

這段時間,我系統地學習了機器學習,由於涉及到很多的高數 最優化 凸集 線性代數和概率論等方面知識,確實是強大的數學在做支撐。學習計畫上繼續堅持 按部就班 按照月計畫 周計畫和天計畫進行,每天進行總結分析。主要有三點體會 1 公式中,一般都是矩陣表示變數形式,複雜的理論無外乎都涉及到矩陣論為基礎,改變...

指標陣列與陣列指標的認識

回顧 int arr 5 整型陣列,表示陣列中每乙個元素都是乙個int型別 char arr 5 字元陣列,表示陣列中每乙個元素都是char struct student ss 5 結構體陣列,表示陣列中每乙個元素都是乙個結構體 指標陣列 表示陣列中的每乙個元素都是乙個指標 資料型別 陣列名 陣列長...