C語言入門(十七)之指標的基本概念

2021-08-29 18:48:33 字數 1972 閱讀 7840

普通變數:

資料型別 變數名稱;

指標變數:

資料型別 * 變數名稱;

資料型別 : 說明將來指標變數能夠儲存什麼型別的變數的位址

注意: 指標變數是什麼型別, 那麼將來就只能儲存什麼型別變數的位址,

例如: 指標變數是int型別, 那麼將來就只能儲存int型別變數的位址

* : 沒有任何特殊含義, 僅僅是為了標示這是乙個指標變數

變數名稱 : 用於區分不同的變數

int num; // 普通變數

num = 10;

int *p; // 指標 , 在64位編譯器下占用8個位元組

// 千萬注意: 指標變數只能儲存位址

p = # // 將num的位址儲存到p這個指標中

// p == &num

printf("num = %p\n", &num);

printf("p = %p\n", p);

// 指標變數前的*號代表訪問指標變數指向的那一塊儲存空間

// *p == num

*p = 55;

printf("num = %i\n", *p);

/ 指標就是專門用於儲存位址的

void change3(int *p) // 用什麼接收位址? 指標 = 0ffc13 int *p = #

1、交換兩個變數的值

#include void swap(int *v1, int *v2)

// int *v1 = &a, int *v2 = &b; v1 = 0ffc13 v2 = 0ffc9

// *v1 == a *v2 == b

int main(int argc, const char * argv)

2、定義乙個函式, 傳遞三個值, 返回這三個值得和,差,平局值

#include //int demo(int v1, int v2, int v3);

int demo(int v1, int v2, int v3, int *p1, int *p2);

int main(int argc, const char * argv)

int demo(int v1, int v2, int v3, int *p1, int *p2)

指標的指向可以修改

int a = 10;

int b = 5;

int *p = &a;

*p = 88;

p = &b;

*p = 44;

printf("%i\n", a);

printf("%i\n", b);

指標型別是什麼型別, 就只能指向什麼型別的資料

指向指標位址的指標,儲存的是指標的位址。

因為當我們利用指標去取值的時候, 系統就會自動根據指標的型別來確定應該取對少個位元組中的值
mac(64位)系統上,指標無論什麼型別,都佔8個位元組,因為

64=8*8

/*

char *cp;

int *ip;

double *dp;

double *****;

// mac系統中的指標無論是什麼型別, 幾級真正都占用8個位元組

// 由於mac是64位了, 32 = 4 * 8; 64 = 8 * 8;

printf("cp = %lu, ip = %lu, dp = %lu, *** = %lu\n", sizeof(cp), sizeof(ip), sizeof(dp), sizeof(***));

*/// 指標為什麼要分型別?

// 因為當我們利用指標去取值的時候, 系統就會自動根據指標的型別來確定應該取對少個位元組中的值

C語言指標的基本概念

指標是一種型別,被稱為 指標型別 指標型別描述的是乙個位址,這個位址指向記憶體中另外乙個物件的位置。簡單地說,指標表示的是它所指向物件的位址。1 比較point,point,point三者的區別 對於int point point 是指標變數的目標變數,即指標指向的那個變數,其內容是資料。2 指標與...

C語言基本概念 指標(一)

指標是乙個變數,其值為另乙個變數的位址,即,記憶體位置的直接位址。就像其他變數或常量一樣,必須在使用指標儲存其他變數位址之前,對其進行宣告。指標變數宣告的一般形式為 type var name type 是指標的基型別,它必須是乙個有效的 c 資料型別,var name 是指標變數的名稱。定義乙個指...

C語言指標基本概念與理解

歡迎關注awp資訊 指標是c c 程式語言中的重要概念,但是對於初級程式設計師來說,指標是個比較難理解的概念,下面就從指標的概念入手,一點點解密指標。學習並理解指標首先已經具備基本的程式設計知識,能夠編寫c程式,對於變數知道如何定義並進行運算。要理解指標首先要對不同資料型別的變數在記憶體中是如何分配...