C語言指標基本概念及其指標變數的定義是什麼

時間 2021-08-30 09:31:59

1樓:景田不是百歲山

指標是常見間接訪問方式.指標就像一個快捷方式,它指向記憶體的一個地址,可以通過指標就可以間接的訪問到資料。對於計算機,訪問記憶體的方式有兩種,直接訪問和間接訪問。直接訪問通過就是通過變數名稱去訪問。

指標概念是構成c/c++的重要元素之一,是變數的一種型別,存放的是指定型別資料的地址,而同型別變數存放的是資料。

指標變數:就是一個變數,其值是可變的,與整形變數、浮點變數等等的命名規則完全相同。 「指標」是概念,「指標變數」是具體實現。

指標型別說明,即定義變數為一個指標變數; 指標變數名; 變數值(指標)所指向的變數的資料型別。

2樓:有露桑煊

在c語言裡,指標是一組記憶體的頭地址,可以存一個數,一個字元,也可以是一個陣列.

變數,就是像定義一個整型變數一樣的,定義的是一個指標型變數.

3樓:鄲濱田伶

指標是一個其數值為地址的變數(或更一般地說是一個資料物件)。

存放地址的變數稱為指標變數。指標變數是一種特殊的變數,它不同於一般的變數,一般變數存放的是資料本身,而指標變數存放的是資料的地址。

4樓:韶雅容貴瑋

語言中,指標是一種型別,被稱為「指標型別」。指標型別描述的是一個地址,這個地址指向記憶體中另外一個物件的位置。簡單地說,指標表示的是它所指向物件的地址。

1、比較point,*point,&point三者的區別

對於int

*point;

point:是指標變數,其內容是地址量。

*point:是指標變數的目標變數,即指標指向的那個變數,其內容是資料。

&point:是指指標變數本身所佔據的儲存地址。

2、指標與陣列

用指標和陣列名在訪問記憶體中的資料時,他們的表現形式是等價的,因為他們都是地址量。

陣列名錶示整個陣列的首地址,可以看作是固定地址的指標,不能被賦值。

陣列名無須賦初值,而指標在使用前必須賦初值。

3、字元指標和字串

字串是一個字元陣列,字串以『\0』結束。printf函式的%s格式輸出字元時,是從給定的地址開始,到遇上第一個『\0』字元時結束。

對字元指標初始化,是將字串的首地址賦給指標。

4、指標型函式

所謂指標型函式,即返回值是指標(地址)的函式。

5、多級指標

指向指標的指標(**p)就是二級指標,指向指標的指標的指標(***p)是3級指標。

多級指標類似於間接定址。

6、指向函式的指標

c語言中的函式名錶示函式的首地址,即函式執行的人口地址。

定義形式:[儲存型別][資料型別標示符](*指向函式的指標變數名)();

例子:int(*fun)();//指向函式的指標

,int

*fun();

//指標型函式,注意(*

fun)括號不能少

7、動態指標

當需要一大片記憶體的時候,最好使用動態分配。

使用malloc函式:void

*malloc(size_t

size)。

例子:int

*pn=malloc(10*sizeof(int));

double

*pd=malloc(10*sizeof(double));

c語言指標基本概念及其指標變數的定義是什麼

5樓:匿名使用者

語言中,指標是一種型別,被稱為「指標型別」。指標型別描述的是一個地址,這個地址指向記憶體中另外一個物件的位置。簡單地說,指標表示的是它所指向物件的地址。

1、比較point,*point,&point三者的區別

對於int * point;

point:是指標變數,其內容是地址量。

*point:是指標變數的目標變數,即指標指向的那個變數,其內容是資料。

&point:是指指標變數本身所佔據的儲存地址。

2、指標與陣列

用指標和陣列名在訪問記憶體中的資料時,他們的表現形式是等價的,因為他們都是地址量。

陣列名錶示整個陣列的首地址,可以看作是固定地址的指標,不能被賦值。

陣列名無須賦初值,而指標在使用前必須賦初值。

3、字元指標和字串

字串是一個字元陣列,字串以『\0』結束。printf函式的%s格式輸出字元時,是從給定的地址開始,到遇上第一個『\0』字元時結束。

對字元指標初始化,是將字串的首地址賦給指標。

4、指標型函式

所謂指標型函式,即返回值是指標(地址)的函式。

5、多級指標

指向指標的指標(**p)就是二級指標,指向指標的指標的指標(***p)是3級指標。

多級指標類似於間接定址。

6、指向函式的指標

c語言中的函式名錶示函式的首地址,即函式執行的人口地址。

定義形式:[儲存型別][資料型別標示符](*指向函式的指標變數名)();

例子: int(*fun)();//指向函式的指標 , int * fun(); //指標型函式,注意(* fun)括號不能少

7、動態指標

當需要一大片記憶體的時候,最好使用動態分配。

使用malloc函式:void * malloc(size_t size)。

例子:int * pn=malloc(10*sizeof(int));

double *pd=malloc(10*sizeof(double));

6樓:匿名使用者

在c語言裡,指標是一組記憶體的頭地址,可以存一個數,一個字元,也可以是一個陣列.

變數,就是像定義一個整型變數一樣的,定義的是一個指標型變數.

7樓:匿名使用者

c語言指標就是變數的地址;

指標變數就是存放變數地址的變數。

c語言中「指標」和「指標變數」的區別是什麼??

8樓:大野瘦子

1、概念不同

「指標」是概念,「指標變數」是具體實現,指標也是一個變數,所以需要進行定義,而對於指標的定義,與一般變數一樣。

2、 存放地址不同

一個變數的(記憶體)地址稱為該變數的「指標」,通過指標能找到以它為地址的記憶體單元。而指標變數是用來存放另一個變數的地址的(即指標)。

指標和指標變數的關係

1、指標就是地址,地址就是指標。

2、地址就是記憶體單元的編號。

3、指標變數就是存放記憶體地址的變數。

4、指標和指標變數是兩個不同的概念,但要注意的是,通常我們敘述時會把指標變數簡稱為指標,實際他們含義並不一樣。

注:指標裡存的是100. 指標:地址 - 具體。

指標裡存的是地址,指標:指標變數 -可變。

指標的好處:

1、直接訪問硬體

2、快速傳遞資料(指標表示地址)

3、返回一個以上的值返回一個(陣列或者結構體的指標)4、表示複雜的資料結構(結構體)

5、方便處理字串

6、指標有助於理解物件導向

9樓:蓋辜苟

用例子來看一下。

int a=3;

int *p;

p=&a;

現在來看一下。a=3這個式子先解釋一下

等式右邊是常量,左邊是變數。

同理的p=&a,左邊的是指標變數,右邊的是指標

指標的基本概念:為了區別記憶體的不同位置,記憶體被分成位元組,記憶體的全部位元組順序地賦予一個稱為地址的編號。程式中的變數將在記憶體中佔據一定的記憶體位元組,在這些位元組中儲存的資料資訊稱為變數的內容。

一個變數佔用連續的若干個記憶體位元組時,最前面的一個位元組的地址就作為該變數的地址。指標就是記憶體地址,是變數的地址,或函式的入口地址。變數的地址在程式執行時,起著非常重要的作用。

當計算機在計算含有變數的表示式時,計算機按變數的地址取出其內容,並按變數的地址將計算結果存入到變數佔據的記憶體中。

如**:  int x=l;  x=x+2;  其中語句「x=x+2;」中的第一個x涉及到變數x佔據的記憶體,第二個 x是引用變數 x的內容。該語句的意義是「取x的內容,完成加上2的計算,並將計算結果存入變數x佔據的記憶體中。

」指標變數和它所指向的變數:在c語言中,地址也作為一種值,能被儲存、比較、賦值,並稱地址資料為指標型別,而稱儲存地址值的變數為指標變數,簡稱指標。c程式可用運算子&取變數的地址,如表示式&x的值就是變數x的地址。

程式除能按名引用變數外,也可利用變數的地址引用變數。按變數名引用變數稱為直接引用,而將變數a的地址存於另一變數b中,藉助於變數b引用變數a稱為對a的間接引用。

定義指標變數的一般形式為:  型別 * 指標變數名;  或  型別 * 指標變數名=初值表示式;  其中,指標變數名是識別符號,指標變數名之前的符號「*」,表示該變數是指標型別的。而最前面的「型別」,表示該指標變數能指向變數或函式的型別。

初值表示式是一個地址表示式,如表示式中有某變數的地址表示式,則這個變數應是前面已定義的。

在c語言中,當定義區域性指標變數時,如未給它指定初值,則其值是不確定的。程式在使用它們時,應首先給它們賦值。誤用其值不確定的指標變數間接引用其它變數,會引起意想不到的錯誤。

為明確表示指標變數不指向任何變數,在c語言中用0值表示這種情況,記為null。

如  ip= null;  也稱指標值為0的指標變數為空指標。對於靜態的指標變數,如在定義時未給它指定初值,系統自動給它指定初值0。

指標變數取程式物件的(開始)地址值,不能將一個整型量或任何其它非地址值賦給一個指標變數。另外,指標變數對所指向的物件也有型別限制,不能將一個不能指向的物件的地址賦給指標變數。

如有以下定義:  int i=100,j,*ip,*intpt;  float f,*fp;  以下**如註釋所敘。  ip=&i;/*使ip指向i*/  intpt=ip;/*使intpt指向ip所指變數*/  fp= &f;/*使fp指向正*/  ip=null;/*使 ip不再指向任何變數*/

在電腦科學中,指標(pointer)是程式語言中的一個物件,利用地址,它的值直接指向(points to)存在電腦儲存器中另一個地方的值。由於通過地址能找到所需的變數單元,可以說,地址指向該變數單元。因此,將地址形象化的稱為"指標"。

意思是通過它能找到以它為地址的記憶體單元。 在高階語言中,指標有效地取代了在低階語言,如組合語言與機器碼,直接使用通用暫存器的地方,但它可能只適用於合法地址之中。指標參考了儲存器中某個地址,通過被稱為反參考指標的動作,可以取出在那個地址中儲存的值。

作個比喻,假設將電腦儲存器當成一本書,一張內容記錄了某個頁碼加上行號的便利貼,可以被當成是一個指向特定頁面的指標;根據便利貼上面的頁碼與行號,翻到那個頁面,把那個頁面的那一行文字讀出來,就相當於是對這個指標進行反參考的動作。

指標是程式設計語言的一個重要概念。指標在c程式中有以下多方面的作用:

利用指標能間接引用它所指的物件。

利用各種型別的指標形式引數,能使函式增加描述能力。

指標與陣列結合,使引用陣列元素的形式更加多樣、訪問陣列元素的手段更加靈活。

指標能用來描述資料和資料之間的關係,以便構造複雜的資料結構。當一個資料a要關聯另一個資料b時,在資料a中增加一個指向資料b的指標就可實現資料a關聯資料b。結合系統提供的動態分配儲存設施,又能構造出各種動態資料結構。

c語言指標變數問題

金色潛鳥 c 語言中,形式邏輯不成立,指標書寫的外形,在宣告中和在語句中,外貌相同,意思不同!int ptr 這是宣告,宣告 ptr 是指標,用於指向 int 型變數。語句中 ptr 表示 指標指向的數值,ptr 表示 指標指向的地址。有 的是值,沒星號的是地址。ptr int malloc num...

C語言指標的概念,它例子具體點,c語言指標的概念

要明白指標的概念,首先得明白程式中的變數在記憶體地址空間中如何存放。記憶體地址空間以位元組為單位,包括程式的 段 資料段 堆還有棧。一個變數有兩個屬性 變數型別和變數名。通過變數名我們可以找到該變數的第一個位元組在地址空間記憶體放的位置 即記憶體地址 通過變數屬性 即變數型別 我們知道該變數總共佔用...

關於C語言指標變數ppp的區,關於C語言指標變數 p p p 的區別

森祿欽春桃 首先搞明白一點,printf語句中表示式的執行順序是從右向左的,並且對於 q 首先進行解引用操作,再自增,即 q,q q 1 所以說第一個printf的輸出為22對於第二個printf,首先執行 q 再執行 p 對於 q 可以轉化為先執行 q 即輸出它的值,再執行 q q 1,最後輸出 ...