當前位置:首頁 » 編程語言 » c語言地址操作

c語言地址操作

發布時間: 2022-05-30 18:01:59

A. c語言中地址操作符、指針操作符分別是什麼

&是地址操作符。
e.g.
int a;
int *b;
b = &a; //&就是取a的地址,即是地址操作。

*是指針操作符,可以聲明指針,也可操作指針所指的數據;
int *p;
*p = 10;

B. 「c語言允許直接訪問物理地址,能進行位操作」是什麼意思啊

就是使用C語言能夠直接定位物理內存的地址,即通過內存地址(如0xfa283401)得到該地址上的數據。
計算機中的數據都是以位(bit,比特)來作為基本單位的,C語言能直接對位進行操作,包括求與,並,或,異或,非等。
物理地址是一個很寬泛的概念,磁碟,內存等存儲設備都有物理地址的說法。
物理內存地址指的是硬體實現上物理內存展現給外部匯流排訪問的編碼地址,其范圍等於物理內存的大小.
大家常說的物理內存就是指安裝在主板上的內存條,其實不然,在計算機的系統中,物理內存不僅包括裝在主板上的內存條(RAM),還應該包括主板BIOS晶元的ROM,顯卡上的顯存(RAM)和BIOS(ROM),以及各種PCI、PCI-E設備上的RAM和ROM。
地址空間就是對物理內存編碼(地址編碼)的范圍。
所謂編碼就是對每一個物理存儲單元(一個位元組)分配一個唯一的地址號碼,這個過程又叫做「編址」或者「地址映射」。這個過程就好像在日常生活中我們給每家每戶分配一個地址門牌號。與編碼相對應的是「定址」過程——分配一個地址號碼給一個存儲單元的目的是為了便於找到它,完成數據的讀寫,這就是「定址」,因此地址空間有時候又被稱作「定址空間」。系統不僅要給主板上的內存條編址,還要給上述的其它物理內存編址;它們都被編在同一個地址空間內,編址後的物理內存就可以被系統資源使用或佔用。

C. C語言 對指針地址的操作

我來扯淡

void GRPH_Pset(int x, int y, PIXEL c)//x,y當然是PIXEL c的坐標了
{
PIXEL *p;

if ((x >= GRPH_clip_window_sx) && (y >= GRPH_clip_window_sy) &&
(x <= GRPH_clip_window_ex) && (y <= GRPH_clip_window_ey))//這個if語言是判斷、、//PIXEL c是不是超出了某個界限了
{
//這個首先獲取用於存儲PIXEL這個數組GRPH_Buffer 。我猜測這個程序大概是這么
//初始化的 GRPH_Buffer=(PIXEL *)malloc(sizeof(PIXEL)*size)
//然後將GRPH_Buffer強制轉換為(PIXEL *) ,因為是PIXEL *類型的指針了。所以
//所以在GRPH_Buffer +1就是加PIXEL大小的地址(如果是int的話,比如有個int *p
///那 p+1就是加int個大小的地址,這樣就好理解了)。所以他加上了x+y*GRPH_width
//個大小,賦值給p後,p指向的地址就是GRPH_Buffer+ x+y*GRPH_width的地址了
p=(PIXEL *)(GRPH_Buffer) + x + y * GRPH_width;
*p = c;//最後將PIXEL c的值賦值給p指向的位置。將c存儲起來。
}
}

//最後需要說的是這個二位數組其實就可以看成是一維數組,一般的二維數組是存儲方式是按行存儲,第一行存儲完了存儲第二行,以此類推。
//但是你的這個程序創建數組應該是一維的。然後程序是按照行存儲,即先將第一行存儲完了,再存儲第二列。所以才會有x + y * GRPH_width的找尋地址方式。

D. C語言中什麼是地址操作

你要表達一個什麼東西啊 是怎麼進行地址操作嗎??要是的話可以通過指針來進行地址操作,

E. C語言中 取內容與取地址運算符的問題

我明白你什麼意思,指針的概念確實不好理解!
1,先給你說下指針,你把指針理解了運算符的抵消就明白一半了!
指針裡面是保存的內存地址(就像int變數裡面保存的是整型變數一個意思)。
整型變數保存在內存裡面,我可以通過這個變數名稱來調用這個數據,也可以通過指針裡面這個變數的地址加上*(間接訪問運算符),來調用這個數據。
2,再說下運算符*和&
*是間接訪問運算符:就是可以通過地址,找到這個地址裡面的變數,所以
*p1
就等同於變數a
&是求地址運算符:就是將變數所在的內存地址,提取出來
這兩個運算符的運算等級是相同的,也就是說誰距離變數近,就誰先。所以*&a和*(&a)是一樣的,都是先取地址,在對地址進行間接訪問。但是一定要注意*與&的順序,&*a是無效的。
3,再說下題
*運算符就是對地址進行操作的,那麼
*地址
的意思就是訪問地址裡面的數據,而&a就是取變數a的地址,所以*&a:
先取變數a的地址

對地址進行間接訪問,兩個操作就相互抵消了,最後還是變數a。
4,還有什麼不明白的么?

F. c語言求地址操作問題

str[i]和string[k+1]都是地址,因此地址賦值不需要地址符,直接賦值即可:

str[i]=string[k+1];

G. 在c語言中地址運算規則是什麼

沒有什麼運算規則,就是數組名代表數組的首地址,數組名+偏移量=數組名[偏移量]的地址,即a+n的意思就是a[n]的地址,沒有特別的了

H. C語言用什麼操作地址

在計算機科學中,指針(Pointer)是編程語言中的一個對象,利用地址,它的值直接指向(points to)存在電腦存儲器中另一個地方的值。由於通過地址能找到所需的變數單元,可以說,地址指向該變數單元。因此,將地址形象化的稱為「指針」。意思是通過它能找到以它為地址的內存單元。在高級語言中,指針有效地取代了在低級語言,如匯編語言與機器碼,直接使用通用暫存器的地方,但它可能只適用於合法地址之中。指針參考了存儲器中某個地址,通過被稱為反參考指針的動作,可以取出在那個地址中存儲的值。作個比喻,假設將電腦存儲器當成一本書,一張內容記錄了某個頁碼加上行號的便利貼,可以被當成是一個指向特定頁面的指針;根據便利粘貼面的頁碼與行號,翻到那個頁面,把那個頁面的那一行文字讀出來,就相當於是對這個指針進行反參考的動作。

I. C語言中對地址的操作有什麼作用

地址操作,也即指針的使用,指針是c一大特點,c是介於高級語言(C++等)與低級語言(匯編)的一種語言,c比其他高級語言更接近底層硬體,而接觸到硬體就避免不了地址操作,靈活的指針使用可以編出高效的程序。

具體的好處,看下網上搜的:

關於指針的本質和基本的運算符我們討論過了,在這里,我想再籠總地談一談使用指針的必要性和好處,為我們今後的使用和對後面篇章的理解做好鋪墊。簡而言之,指針有以下好處:
1)、方便使用動態分配的數組。
這個解釋我放在本系列第六篇中進行講解。
2)、對於相同類型(甚至是相似類型)的多個變數進行通用訪問。
就是用一個指針變數不斷在多個變數之間指來指去,從而使得非常應用起來非常靈活,不過,這招也比較危險,需要小心使用:因為出現錯誤的指針是編程中非常忌諱的事情。
3)、變相改變一個函數的值傳遞特性。
說白了,就是指針的傳地址作用,將一個變數的地址作為參數傳給函數,這樣函數就可以修改那個變數了。
4)、節省函數調用代價。
我們可以將參數,尤其是大個的參數(例如結構,對象等),將他們地址作為參數傳給函數,這樣可以省去編譯器為它們製作副本所帶來的空間和時間上的開銷。
5)、動態擴展數據結構。
因為指針可以動態地使用malloc/new生成堆上的內存,所以在需要動態擴展數據結構的時候,非常有用;比如對於樹、鏈表、Hash表等,這幾乎是必不可少的特性。
6)、與目前計算機的內存模型相對應,可按照內存地址進行直接存取,這使得C非常適合於一些較底層的應用。
這也是C/C++指針一個強大的優點,我會在後面講述C語言的底層操作時,較詳細地介紹這個優點的應用。

J. C語言指針指定地址

首先,不能這樣做,你c語言操作的地址並不是真實的地址,是操作系統從內存的某一段虛擬給你的地址,每次都不一樣,每個程序所使用的內存互不幹擾。
第二,而你的程序退出後,所擁有的空間就被系統全部回收了。也就不存在了。否則,你c語言亂改一通,要是改到系統正在用的內存,系統不就出現異常了嗎。內存並不是由你管理的,而是操作系統管理的。

假設 a程序的 p指針,指向 0xaaa地址 ,你修改 b程序的 p指針,指向0xaaa,也是無法修改的,每個程序的內存都是系統虛擬的。保證程序可以安全穩定的執行。

熱點內容
php問卷調查 發布:2025-02-11 22:47:35 瀏覽:659
儲存儲卡 發布:2025-02-11 22:39:56 瀏覽:991
微信使用賬號登錄時的密碼是什麼 發布:2025-02-11 22:37:37 瀏覽:622
命令退出FTP 發布:2025-02-11 22:26:18 瀏覽:161
python非同步框架 發布:2025-02-11 22:22:22 瀏覽:22
廣聯達正版加密鎖 發布:2025-02-11 22:08:02 瀏覽:803
斯諾克資料庫 發布:2025-02-11 21:54:02 瀏覽:533
安卓手機降噪功能在哪裡打開呢 發布:2025-02-11 21:52:56 瀏覽:701
騰訊雲伺服器購買網址 發布:2025-02-11 21:37:46 瀏覽:61
安卓電話視頻怎麼投電視上 發布:2025-02-11 21:32:27 瀏覽:19