當前位置:首頁 » 編程軟體 » 編程中指針

編程中指針

發布時間: 2022-08-22 02:49:57

Ⅰ 請問c語言中 指針是什麼有什麼作用請用通俗的語言解釋

通俗的說,就是你家的門牌號,

簡單地說指針就是指向變數和對象的地址。
指針的用途非常廣泛,比如如果你想通過函數改變一個變數的值,就得用指針而不能用值傳遞。還有在很多時候變數,特別是對象的數據量實在太大,程序員就會用指針來做形參,只需要傳遞一個地址就行,大大提高了效率。
以上還只是指針的初步應用,隨著你在C語言學習上的逐步深入,你會發現更多的用途的

編程中指針的含義是什麼

指針的含義其實也是一塊內存,只是它存儲的東西是內存的地址,與普通變數不一樣。

Ⅲ C語言中「指針」和「指針變數」的區別是什麼

1、概念不同

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

2、 存放地址不同

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

(3)編程中指針擴展閱讀:

指針和指針變數的關系

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

2、地址就是內存單元的編號。

3、指針變數就是存放內存地址的變數。

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

註:

指針里存的是100. 指針:地址 - 具體。

指針里存的是地址,指針:指針變數 -可變。

指針的好處:

1、直接訪問硬體

2、快速傳遞數據(指針表示地址)

3、返回一個以上的值返回一個(數組或者結構體的指針)

4、表示復雜的數據結構(結構體)

5、方便處理字元串

6、指針有助於理解面向對象

Ⅳ 論述C語言中指針的概念和作用,並舉例說明

1、指針概念:變數的地址(計算機內存位元組的編號)叫做指針,存放變數地址的變數叫指針變
量,
簡言之,指針是用來存放地址的。
2、作用:指向這個變數或數組的首地址,是變數的間接引用方式。其值如果改變,變數的值或數組元素的值也會跟著改變。程序對變數的操作實際上是對變數所在的存儲空間讀取和寫入數據。方便對變數的操作。
舉例說明:
int
a=3;/*定義一個整型變數a,並賦初值3*/
int
*p;/*定義一個指針變數P*/
p=&a;/*讓p指向a的首地址,也就是a的地址*/
程序為a分配一個2個位元組的存儲單元,假如2個位元組的地址分別為(ABCD1和ABCD2,唯一),那麼p裡面放的值就是ABCD1,不是3。這時可通過p直接引用a,實際上*p=3。以後不管a存放在內存中的哪個地方,只用通過調用p就可以引用a。這時如果令*p=4,則最後的a值也為4。對於數組,指針是指向數組的首地址。

Ⅳ 編程中什麼是指針

以 C 語言為例(其它語言都大同小異),指針即:地址!!例如如下的程序:
#include <stdio.h>
void main( )
{
int num ; /* 定義一個整型變數 num */
scanf("%d",&num);
printf("num = %d\tnum's address is: %p\n", num, &num);
}
其中:在 printf 語句中,第一個參數 %d 是按照十進制輸出 num 的數值,第二個參數 %p 、以及 &num,輸出的就是變數 num 在電腦內存中的實際物理地址!!
這個實驗我以前是親自在 DOS 狀態下,使用 debug 命令工具查看過的。可有意思呢。
確實在那個物理地址中,看到了我在前面使用 scanf 輸入數據語句中輸入的 num 的實際數值!!

Ⅵ 編程中的指針概念

每個變數都有地址,無論是基本變數、函數還是類對象,而這個地址一般是不可知的,指針就提供了這樣一個機制,讓你可以知道變數存儲的地方,指針本身也是一個變數,它也有值,這個值就是某個變數的地址,它也有地址,如果你想知道這個地址的話可以把這個地址保存在另外一個指針裡面,這就是二級指針,你願意的話可以弄個三級指針、四級指針·····無窮下去,不過沒多大意義

Ⅶ C語言的指針是什麼

針是C語言中廣泛使用的一種數據類型。 運用指針編程是C語言最主要的風格之一。利用指針變數可以表示各種數據結構; 能很方便地使用數組和字元串; 並能象匯編語言一樣處理內存地址,從而編出精練而高效的程序。指針極大地豐富了C語言的功能。 學習指針是學習C語言中最重要的一環, 能否正確理解和使用指針是我們是否掌握C語言的一個標志。同時, 指針也是C語言中最為困難的一部分,在學習中除了要正確理解基本概念,還必須要多編程,上機調試。只要作到這些,指針也是不難掌握的。

指針的基本概念 在計算機中,所有的數據都是存放在存儲器中的。 一般把存儲器中的一個位元組稱為一個內存單元, 不同的數據類型所佔用的內存單元數不等,如整型量佔2個單元,字元量佔1個單元等, 在第二章中已有詳細的介紹。為了正確地訪問這些內存單元, 必須為每個內存單元編上號。 根據一個內存單元的編號即可准確地找到該內存單元。內存單元的編號也叫做地址。 既然根據內存單元的編號或地址就可以找到所需的內存單元,所以通常也把這個地址稱為指針。 內存單元的指針和內存單元的內容是兩個不同的概念。 可以用一個通俗的例子來說明它們之間的關系。我們到銀行去存取款時, 銀行工作人員將根據我們的帳號去找我們的存款單, 找到之後在存單上寫入存款、取款的金額。在這里,帳號就是存單的指針, 存款數是存單的內容。對於一個內存單元來說,單元的地址即為指針, 其中存放的數據才是該單元的內容。在C語言中, 允許用一個變數來存放指針,這種變數稱為指針變數。因此, 一個指針變數的值就是某個內存單元的地址或稱為某內存單元的指針。圖中,設有字元變數C,其內容為「K」(ASCII碼為十進制數 75),C佔用了011A號單元(地址用十六進數表示)。設有指針變數P,內容為011A, 這種情況我們稱為P指向變數C,或說P是指向變數C的指針。 嚴格地說,一個指針是一個地址, 是一個常量。而一個指針變數卻可以被賦予不同的指針值,是變。 但在常把指針變數簡稱為指針。為了避免混淆,我們中約定:「指針」是指地址, 是常量,「指針變數」是指取值為地址的變數。 定義指針的目的是為了通過指針去訪問內存單元。

既然指針變數的值是一個地址, 那麼這個地址不僅可以是變數的地址, 也可以是其它數據結構的地址。在一個指針變數中存放一

個數組或一個函數的首地址有何意義呢? 因為數組或函數都是連續存放的。通過訪問指針變數取得了數組或函數的首地址, 也就找到了該數組或函數。這樣一來, 凡是出現數組,函數的地方都可以用一個指針變數來表示, 只要該指針變數中賦予數組或函數的首地址即可。這樣做, 將會使程序的概念十分清楚,程序本身也精練,高效。在C語言中, 一種數據類型或數據結構往往都佔有一組連續的內存單元。 用「地址」這個概念並不能很好地描述一種數據類型或數據結構, 而「指針」雖然實際上也是一個地址,但它卻是一個數據結構的首地址, 它是「指向」一個數據結構的,因而概念更為清楚,表示更為明確。 這也是引入「指針」概念的一個重要原因。

指針變數的類型說明

對指針變數的類型說明包括三個內容:

(1)指針類型說明,即定義變數為一個指針變數;

(2)指針變數名;

(3)變數值(指針)所指向的變數的數據類型。

其一般形式為: 類型說明符 *變數名;

其中,*表示這是一個指針變數,變數名即為定義的指針變數名,類型說明符表示本指針變數所指向的變數的數據類型。

Ⅷ 指針與指針變數的概念是什麼

1、指針,是C語言中的一個重要概念及其特點,也是掌握C語言比較困難的部分。指針也就是內存地址,指針變數是用來存放內存地址的變數,不同類型的指針變數所佔用的存儲單元長度是相同的,而存放數據的變數因數據的類型不同,所佔用的存儲空間長度也不同。

有了指針以後,不僅可以對數據本身,也可以對存儲數據的變數地址進行操作。

2、指針變數是指存放地址的變數。因地址的改變而做出指定性質的衡量變法。

(8)編程中指針擴展閱讀:

指針變數定義:

1、定義指針變數的一般形式如下:

類型名*指針變數名1,*指針變數名2,... *指針變數名n ;

2、空指針

空指針是一個特殊的指針,它的值是0,C語言中用符號常量NULL(在stdio.h中定義)表示這個空值,並保證這個值不會是任何變數的地址。空指針對任何指針類型賦值都是合法的。一個指針變數具有空指針值表示當前它沒有指向任何有意義的東西。

3、void指針

(void *)類型的指針叫通用指針,可以指向任何的變數,C語言允許直接把任何變數的地址作為指針賦給通用指針。

但是需要注意void*不能指向由const修飾的變數,例如const int test; void * ptv; ptv = &test;第三句是非法的,只有將ptv聲明為const void * ptv;,上述第三句ptv = &test才是合法的。

當需要使用通用指針所指的數據參加運算時,需要寫出類型強制轉換。如通用指針ptv 所指空間的數據是整型數據,p是整型指針,用此式轉換:p=(int *)ptv;

Ⅸ c語言指針是什麼意思!

指針其實是一個整形變數,與其它數據不同的是,它的作用是用來存儲其它變數的地址。指針(Pointer)是編程語言中的一個對象,利用地址,它的值直接指向(points to)存在電腦存儲器中另一個地方的值。由於通過地址能找到所需的變數單元,可以說,地址指向該變數單元。

因此,將地址形象化的稱為「指針」。意思是通過它能找到以它為地址的內存單元。

再打個比方:有個人讓你去麥當勞幫我買個雪糕,那麼麥當勞是這個變數a,但是那個人現在把麥當勞所在的地址寫在紙上給你,那麼這張紙就可以看做一個指向麥當勞的指針。

(9)編程中指針擴展閱讀

舉例說明:

int p; //這是一個普通的整型變數。

int *p; //首先從P 處開始,先與*結合,所以說明P 是一個指針,然後再與int 結合,說明指針所指向的內容的類型為int 型.所以P是一個返回整型數據的指針。

int p[3]; //首先從P 處開始,先與[]結合,說明P 是一個數組,然後與int 結合,說明數組里的元素是整型的,所以P 是一個由整型數據組成的數組 。

int *p[3]; //首先從P 處開始,先與[]結合,因為其優先順序比*高,所以P 是一個數組,然後再與*結合,說明數組里的元素是指針類型,然後再與int 結合,說明指針所指向的內容的類型是整型的,所以P 是一個由返回整型數據的指針所組成的數組。

int (*p)[3]; //首先從P 處開始,先與*結合,說明P 是一個指針然後再與[]結合(與"()"這步可以忽略,只是為了改變優先順序),說明指針所指向的內容是一個數組,然後再與int 結合,說明數組里的元素是整型的.所以P 是一個指向由整型數據組成的數組的指針。

int **p; //首先從P 開始,先與*結合,說是P 是一個指針,然後再與*結合,說明指針所指向的元素是指針,然後再與int 結合,說明該指針所指向的元素是整型數據。由於二級指針以及更高級的指針極少用在復雜的類型中,所以後面更復雜的類型就不考慮多級指針了,最多隻考慮一級指針。

int p(int); //從P 處起,先與()結合,說明P 是一個函數,然後進入()里分析,說明該函數有一個整型變數的參數,然後再與外面的int 結合,說明函數的返回值是一個整型數據。

Int (*p)(int); //從P 處開始,先與指針結合,說明P 是一個指針,然後與()結合,說明指針指向的是一個函數,然後再與()里的int 結合,說明函數有一個int 型的參數,再與最外層的int 結合,說明函數的返回類型是整型。

所以P 是一個指向有一個整型參數且返回類型為整型的函數的指針。

int *(*p(int))[3]; //可以先跳過,不看這個類型,過於復雜從P 開始,先與()結合,說明P 是一個函數,然後進入()裡面,與int 結合,說明函數有一個整型變數參數,然後再與外面的*結合,說明函數返回的是一個指針。

然後到最外面一層,先與[]結合,說明返回的指針指向的是一個數組。然後再與*結合,說明數組里的元素是指針,然後再與int 結合,說明指針指向的內容是整型數據.所以P 是一個參數為一個整數據且返回一個指向由整型指針變數組成的數組的指針變數的函數.

熱點內容
密碼沒改為什麼解不開 發布:2025-02-06 07:42:45 瀏覽:93
方舟編譯器可以開發應用程序么 發布:2025-02-06 07:26:59 瀏覽:297
什麼導師配置好 發布:2025-02-06 07:19:23 瀏覽:476
263會議視頻密碼是多少 發布:2025-02-06 07:09:59 瀏覽:708
uc小說瀏覽器緩存 發布:2025-02-06 07:05:05 瀏覽:468
wifi路由手機怎麼設置密碼 發布:2025-02-06 07:00:57 瀏覽:986
nsurlsession上傳 發布:2025-02-06 06:55:18 瀏覽:337
亞洲十帥exo訪問 發布:2025-02-06 06:51:40 瀏覽:99
編程一首詩 發布:2025-02-06 06:45:04 瀏覽:529
驚聲尖笑5下載ftp 發布:2025-02-06 06:33:16 瀏覽:529