C 語言學習第十三課小結

2021-08-18 10:57:46 字數 1384 閱讀 2231

指標學習:

首先指標是c++語言的靈魂,它的作用是改變記憶體中相應位址的變數數值,最大記憶體數在記憶體中表示為fffffffe,這個是16進製制下最大數的表現,字元的話相當於2的32次方吧。

如何定義乙個指標呢?

int* pa=nullptr;一般用這種表示式來定義指標,指標的變數開頭一般為p,也就是pointer的簡寫形式,而空指標一般使用null來定義,區分於整數型的0,表示乙個空的指標。

pa=&a;表示為取變數a在記憶體中的位址符,表示為變數。通過指標可以快速的找到賦值變數在記憶體中的位置,並對其進行操作。

無論用何種變數來定義指標,指標在記憶體中均占用4位元組。另外*的含義是間接引用,只能作用於位址。

然後,當指標指向的是乙個陣列時,指標的用法與陣列相同。例如

int arr[8]=;

int* pa=null;

pa=arr;

pa[3]=300;//通過監視視窗可以發現,陣列中的第三個元素被變成了300。

當然,也可以同時定義多個指標指向同一位址。在多重定義的情況下,位址的變數以最後定義的指標值為準。

例如:int a[3]=;

int* pa=null;

int* pb=null;

pa=a[3];

pb=a[3];

pa[1]=5;

pb[1]=10;//通過監視可以發現,陣列中a[1]的值變成了10。

最後介紹下指標的運算:

指標可以進行加減的運算,但不可以進行乘除的運算。

例如:int a=;

int* pa=a;

pa+=1;//這樣表示指標向後跨越了乙個元素。即:*pa=&a[1]。

可以看出,指標一開始指定的是a[0]的位址符,通過加法運算,移動到a[1]的位址符了。

兩指標之間相互運算時,不可以相加,但可以相減,通過相減的辦法,可以算出,兩指標直接有多少個元素。

例如:int a=;

int* pa=a;

int* pb=&a[5];

pb-pa;//通過監視視窗發現,這個值等於5,表示pb與pa之間相隔了5個元素。

我們數一下發現這5個元素應該是a[0],a[1],a[2],a[3],a[4]。那麼,我們如何輸出這5個元素呢?

當然需要我們的for迴圈來解決了。(while也可以,但是感覺for比較方便解釋)

例:for(pa=&a[0];*pa!=a[5];*pa++)

首先定義一下指標pa在a[0]處的位址符,然後設定條件pa的值(*pa)不等於a[5],最後設定迴圈辦法為*pa++,指標的值遞增。

這樣可以迴圈出a[0]到a[4]的值,當然,如果願意的話,可以從a[1]~a[3]之間各個位址開始輸出,分別得到不同的pa值而已。但是記住,指標之間做減法時,一定要用靠後的位址減去考前的位址,這樣才能得出乙個正確的結果。

易語言學習第十三課

知識點 1.刪首空 刪除首部的空格,返回文字型 2.刪尾空 刪除尾部的空格,返回文字型 2.刪全部空 刪除文字中的所有空格,返回文字型 4.取空白文字 返回指定數目空格組成的文字 5.文字替換 四個引數,第乙個為操作的文字 6.子文字替換 在給定文字中指定子文字,將子文字替換為其他文字 版本 2 程...

第十三課 彙編基礎學習 十三

請注意 該動畫內如含廣告與本站無任何關係,為作者個人宣傳,網路交易風險自負 and指令 且 and 邏輯與指令,按位進行與運算。必須兩個運算元都為1,那麼返回為1。有乙個為0,則返回為0 示例 mov al,00001000b and al,11110111b 執行後al 0 00001000b 8...

第十三課 模組

第十三課 模組 在python中,乙個py檔案就是乙個模組,檔名為 py模組名則是 匯入模組可以引用模組中已經寫好的功能。1.import語句 檔名 foo.py x 1def get print x def change global x x 0要想在另外乙個py檔案中引用foo.py中的功能,需...