C語言中關於指標等相關理解和使用事宜

2021-09-13 21:57:14 字數 1113 閱讀 5607

指標是乙個變數,其值是另乙個變數的位址,位址代表的是在記憶體中的位置。

需要記住的是,陣列變數本身就是乙個指標。

int    *ip;    /* 乙個整型的指標 */

double *dp; /* 乙個 double 型的指標 */

float *fp; /* 乙個浮點型的指標 */

char *ch; /* 乙個字元型的指標 */

其實指標永遠都只是乙個代表乙個位址的十六進製制數,所謂的型別,指的是指標指向的變數的型別。

//通過&運算子獲取了i的位址並儲存到intp中去

int *intp; = &i;

指標可以進行運算:++、--、+、-

此外,指標還可以用關係運算子進行比較,如 ==、< 和 >

int intarr = ;

//先定義乙個指標執行陣列第乙個元素

int *intarrp = &intarr[0];

//自增一下看看結果(每增加一次,它都將指向下乙個整數字置)

intarrp++;

指標還可以指向指標

int data = 5201314;

int *p1 = &data;

int **p2 = &p1;

printf("%d\n", data); //都是5201314

printf("%d\n", *p1);

printf("%d\n", **p2);

結構體中對指標的使用會稍微特殊一點,主要因為結構體本身的特殊性,想使用結構體中的乙個值,一般分為通過結構體自身和指向結構體的指標二種情況,具體看下面的例子:

struct node

;//先建立乙個結構體資料

struct node node;

node.val = 1;

struct node *nodep; //建立乙個指向剛剛的結構體的指標

nodep = &node;

printf("%d\n", nodep->val);//指向結構體的指標用->

printf("%d\n", node.val);//結構體自身用.

關於C語言中的指標

1 對於已定義的某個變數的讀取 通過該變數來訪問它的值 通過該變數的儲存位置讀取數值 指標 作業系統會將所有的記憶體單元進行編號。關於32位作業系統與64位作業系統支援的最大記憶體。計算機底層使用二進位制進行管理,所以32位作業系統支援2的32次方個編號,即4g的記憶體位址。int a 1 int ...

關於C語言等程式中指標相關的問題

凡是學過程式設計的人,特別是從c起步的,都會去學習乙個叫做指標的東西,而且好多人都會被卡在指標這裡,覺得特別難以理解,不知道指標到底是乙個什麼東西,也不知道什麼時候使用指標,什麼時候不使用指標。其實指標並沒有那麼複雜,關鍵是要理解透徹。我們編寫程式,不管是什麼語言程式設計,無論是面向過程還是物件導向...

C語言中關於const與指標結合的理解

這裡的const要保護的就是資料不能被修改!單獨使用的話,可能就像 define一樣,但是如果是函式引數呢?指標形式的 比如我要把乙個列表裡的內容顯示出來,可能會定義這麼個函式 typedef struct list data void listshow data const data 這個時候我就...