當前位置:首頁 » 服務存儲 » 通過指針引用一個存儲單元
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

通過指針引用一個存儲單元

發布時間: 2022-08-02 23:13:15

『壹』 如何使用指針來存取數據

哈哈,不知道樓主看沒看過海賊王?
路飛一夥進入偉大航路後,要按照「指針」來從一個島嶼到下一個島嶼
其實C語言中的「指針」的意思也是這樣,所謂「指針」,不如說是「指南針」,再高端點,應該叫「GPS」,指針變數存的就是「GPS坐標」這個信息,這個「GPS坐標」,就是內存中的某個位置, 指針變數存的這個地址,我們知道也沒用,我們利用指針,是希望能通過指針,來找到內存中的這個地址,然後去看這個地址中存儲的數據(值,或者類比來說指針指向島嶼,島嶼上的樹呀,花呀,就是這個島嶼的內容。對於計算機來說,島嶼就是內存中的一塊地方,那麼些花草就是 整形、字元之類的數據)
說到這,LZ應該明白,指針並不是容器,而是一個「定位器」,我們用指針,就是希望能夠隨時找到這個內存位置上的值
所謂的文件指針,也是這個意思,我們用fopen這個函數,把一個文件以流的形式寄存在了內存當中,但僅僅是這樣而已,你什麼都做不了~於是,指針出現了,文件指針幫助你找到這個文件流在那內存中的具體位置,好讓你來對其進行操作~
這是ptb_youd 同學的解答,我認為說得很好。

『貳』 論述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。對於數組,指針是指向數組的首地址。

『叄』 若p已指向存儲單元a[1],通過指針

s=p+3; 2

『肆』 引用和指針有何區別何時只能使用指針而不能使用引用

引用與指針區別:引用只是取得數據,無權修改,句柄就是一種引用的方式;指針是直接指向內存的,可以修改數據的。

引用訪問一個變數是直接訪問,而指針是間接訪問。
引用是一個變數的別名,本身不單獨分配自己的內存空間,而指針有自己的內存空間。
引用在開始的時候就綁定到了一個內存空間(開始必須賦初值),所以他只能是這個內存空間的名字,而不能改成其他的,當然可以改變這個內存空間的值.
例如
int i = 3,j = 4;
int &x = i;//成為i的別名
x = j;//不能否認x仍然引用i,並沒有成為j的別名,只是修改了x和j共享的內存空間的值.
這點與指針不同,指針在任何時刻都可以改變自己的指向。

無法讓引用與其指示物分離。
和指針不同,一旦引用和對象綁定,它無法再被重新指向其他對象。引用本身不是一個對象(它沒有標識;當試圖獲得引用的地址時,你將的到它的指示物的地址;記住:引用就是它的指示物 )。
從某種意義上來說,引用類似 int* const p 這樣的const指針(並非如 const int* p這樣的指向常量的指針)。不管有多麼類似,請不要混淆引用和指針;它們完全不同。
盡可能使用引用,不得已時使用指針。
當不需要「重新指向(reseating)」時,引用一般優先於指針被選用。這通常意味著引用用於類的公有介面時更有用。引用出現的典型場合是對象的表面,而指針用於對象內部。
上述的例外情況是函數的參數或返回值需要一個「臨界」的引用時。這時通常最好返回/獲取一個指針,並使用 NULL指針來完成這個特殊的使命。(引用應該總是對象的別名,而不是被解除引用的 NULL 指針)。
注意:由於在調用者的代碼處,無法提供清晰的的引用語義,所以傳統的 C 程序員有時並不喜歡引用。然而,當有了一些 C++經驗後,你會很快認識到這是信息隱藏的一種形式,它是有益的而不是有害的。就如同,程序員應該針對要解決的問題寫代碼,而不是機器本身。

『伍』 使指針p指向一個float型的動態存儲單元

選B
B的格式是最正確的 p=(float*)malloc(sizeof(float))
因為是存儲地址所以必須要用指針來保存(float*)。
malloc(sizeof(float)) 表明這塊地址的大小。類型當然是對應指針的。

『陸』 指針和引用的優缺點有哪些

指針是一個變數,只不過這個變數存儲的是一個地址,指向內存的一個存儲單元;而引用跟原來的變數實質上是同一個東西,只不過是原變數的一個別名而已。
二者的相同點:
1. 都是地址的概念;指針指向一塊內存,它的內容是所指內存的地址;
2.引用是某塊內存的別名。
二者的不同點:
1. 指針是一個實體,而引用僅是個別名;
2. 引用使用時無需解引用(*),指針需要解引用;
3. 引用只能在定義時被初始化一次,之後不可變;指針可變;
4. 引用沒有 const,指針有 const;
5. 引用不能為空,指針可以為空;
6. 「sizeof 引用」得到的是所指向的變數(對象)的大小,而「sizeof 指針」得到的是指針本身(所指向的變數或對象的地址)的大小;
7. 指針和引用的自增(++)運算意義不一樣;
8.從內存分配上看:程序為指針變數分配內存區域,而引用不需要分配內存區域。

『柒』 多個指針可以指向同一個存儲單元

B
指針相等,就是指指針里保存的地址相同,
就是說兩個指針指向同一個地址.
指針變數,就是一個變數里放著別人的地址.

『捌』 關於C語言指針的幾個問題

1、回答正確!答案是B
2、首先注意指針變數傳遞的是地址!sub函數里,y、z均指向a,所以共同改變a的值。*y=*y-1.0; 執行後,a=*pa=*y=*z=1.5。*z=*z+x;執行後,*z=*pa=a=1.5+6.5=8,所以答案是C. 8.000000
二-1、錯誤!因為s已經指向了a[2]的地址,而a[2]的下一個地址就是a[3],所以s+1就指向了a[3]的地址,*(s+1)取a[3]的值。
二、-2、p並不指向空!首先,數組a共有五個元素,而此時指針p指向首地址,for循環一共循環了5次,所以輸出結果是10 20 30 40 50。因為指針用的是*(p+i),所以運行完成後,p並沒有移動(注意不是*(p++)),依然指向數組a的首地址。
關於指針,建議你看一下「初學者編程入門:C語言指針使用方法」,非常容易理解!而且有很多技巧在裡面。
地址:http://www.souzz.net/html/e/C1/3878.html
或者從網路里搜一下。