c 指標的理解及使用

2021-08-03 10:24:49 字數 1436 閱讀 7632

先來看下使用指標時候要用到的符號的功能:

& 是一元運算子,返回運算元的記憶體位址。

間接定址運算子 *,第二個運算子是間接定址運算子 *,它是 & 運算子的補充。* 是一元運算子,返回運算元所指定位址的變數的值。

再看乙個例項,

#include 

using

namespace

std;

int main ()

當上面的**被編譯和執行時,它會產生下列結果:

value of var :3000

value of ptr :0xbff64494

value of val :3000

這些網上的列子很多,也很好理解。下面我談下我對指標的理解。

int* p,那麼p就是乙個指向int型別的指標,宣告指標的時候要這樣宣告。就會有這樣乙個記憶體,這塊兒記憶體裡要指定乙個位址,就是說這塊兒記憶體要存一塊兒位址。這塊兒記憶體為了方便我們用**控制,起個名字叫p,而p只是乙個名字,不占用記憶體裡的任何位元組,佔位元組的是p代表的那塊兒記憶體 ,就好像地球上的乙個人,這個人的名字不占用地球上的任何空間,只有這個人的名字代表的這個人才占用地球上的空間。

給指標p可以這樣賦值:

p=&n,

也可以這樣,在宣告的時候就賦值:

int* p=&n;

用列印語句列印p的值,就是&n。即n的位址。

列印*p,就是n的值。

下面是我的**,對指標的應用:

#include 

using

namespace

std;

int num2 = 0;

int num1 = 10;

int num3 = 40;

void swap(int *ptr);

//來區別這行注釋裡的出現的第乙個「指標」。那麼這段函式的操作就是,把指標爸爸傳進來,我要改變

//它的兒子----指標,

class point

private:

int xpos;

int ypos;

};//類point成員函式的實現方式有兩種,在類外用作用域操作符::

void point::setpoint(int x, int y)

int main()

void swap(int *ptr)//我寫了乙個替換乙個變數的函式,經過測試,c++,可以通過指標的操作直接控制一段記憶體裡存的值,這裡

//如果直接寫成(int ptr),只是進行了值的傳遞,並沒有操作記憶體裡的值

//所以,就穿進去乙個位址,位址是可以被乙個指標所指的

//來區別這行注釋裡的出現的第乙個「指標」。那麼這段函式的操作就是,把指標爸爸傳進來,我要改變

//它的兒子----指標,

C 指標的理解

1.記憶體長成啥樣?物理記憶體條由連續排列晶元組構成,在計算機中記憶體模型也被抽象為一組連續的儲存空間,每個空間都能夠儲存若干位元組的資料,每一塊儲存空間也有乙個特定的序號,從0到n。備註 為了便於理解,此處,將記憶體儲存空間橫向排列 實際橫縱排列的意義相同 0000 0001 0002 0003 ...

C 指標的理解

一.c 位址指標的基本概念在計算機中,所有的資料都是存放在儲存器中的。一般把儲存器中的乙個位元組稱為乙個記憶體單元,不同的資料型別所占用的記憶體單元數不等,如整型量佔2個單元,字元量佔1個單元等,在前面已有詳細的介紹。為了正確地訪問這些記憶體單元,必須為每個記憶體單元編上號。根據乙個記憶體單元的編號...

理解C 的指標

本文是新手零基礎學習c 對指標 陣列和結構的理解和筆記,有些凌亂和語無倫次,只是將想法記錄下來,在以後忘了或者概念不清的時候看看。如理解有誤,敬請各位請前輩不吝指教,不勝感激。在c 基礎教程中指標一般被定義為 存放位址的變數。我們可以把指標變數看做乙個向量,它有大小 sizeof 運算子可查位元組 ...