c語言地址運算符
㈠ c語言中 取內容與取地址運算符的問題
我明白你什麼意思,指針的概念確實不好理解!
1,先給你說下指針,你把指針理解了運算符的抵消就明白一半了!
指針裡面是保存的內存地址(就像int變數裡面保存的是整型變數一個意思)。
整型變數保存在內存裡面,我可以通過這個變數名稱來調用這個數據,也可以通過指針裡面這個變數的地址加上*(間接訪問運算符),來調用這個數據。
2,再說下運算符*和&
*是間接訪問運算符:就是可以通過地址,找到這個地址裡面的變數,所以
*p1
就等同於變數a
&是求地址運算符:就是將變數所在的內存地址,提取出來
這兩個運算符的運算等級是相同的,也就是說誰距離變數近,就誰先。所以*&a和*(&a)是一樣的,都是先取地址,在對地址進行間接訪問。但是一定要注意*與&的順序,&*a是無效的。
3,再說下題
*運算符就是對地址進行操作的,那麼
*地址
的意思就是訪問地址裡面的數據,而&a就是取變數a的地址,所以*&a:
先取變數a的地址
再
對地址進行間接訪問,兩個操作就相互抵消了,最後還是變數a。
4,還有什麼不明白的么?
㈡ C語言中取地址運算解釋
// 定義int普通變數d,int指針變數e,f
int d,*e,*f;
// 指針e指向d的地址,即,e保存的是d的地址,而不是一個普通變數
e=&d;
// 獲取終端輸入的一個整數,賦值給d(即,將終端獲取的整數值寫入scanf後面跟的地址中
scanf("%d",&d);
// 指針f也跟e一樣,保存d的地址
f=e;
以上,*e,*f,d實際上都是d
e,f,&d實際上都是d的地址
㈢ C語言中有地址運算符(那個符號我手機寫不出來,暫且用§代替一下)§x表示變數x的地址,什麼意思啊
你好!
存放這個變數的內存區域的代號,可以當指針使用。
打字不易,採納哦!
㈣ C語言 指針運算符,地址運算符是怎樣工作的
我把「*」和「&」這兩個運算符做了較詳細解釋。這段代碼你可以拷貝到VC/VS工程中看,我不知道你學過計算機硬體知識沒,如果你學過硬體的一些基礎知識,就比較容易理解。不過沒學過也可以理解。如果你不明白就再問
int main()
{
int arr1 = 12, arr2 = 15;
char ch1 = 'b', ch2 = 'h';
float f1 = 3.14, f2 = 3.15;
/* 「*」地址運算符解釋 */
/* 定義三個指針,這三個指針分別指向不同的數據類型 */
/* 注意:此處的「*」指針運算符是為了說明我們定義的變數是一個指針變數 */
int *p_arr = &arr1; //指針變數p_arr中存放的是arr1的地址
char *p_ch = &ch1 ; //指針變數p_ch中存放的是ch1的地址
float *p_f = &f1 ; //指針變數p_f中存放的是f1的地址
/* 注意:此處的「*」指針運算符是為了操作指針p_arr指向的元素 */
*(p_arr) = 30; //等價於把變數arr1賦值為30
*(p_ch) = 'c'; //等價於把變數ch1賦值為字元'c'
*(p_f) = 90.89; //等價於把變數f1賦值為浮點數90.89
/* 「&」地址運算符解釋 */
p_arr = &arr2; //把變數arr2的地址賦值給p_arr
p_ch = &ch2; //把變數ch2的地址賦值給p_ch
p_f = &f2; //把變數f2的地址賦值給p_f
return 0;
}
㈤ c語言中,指針和取地址運算符到底是什麼啊,能不能通俗一點講啊,謝謝
關於指針,統統都是在說內存的事情,內存就像一個大樓,每個格子都有一個門牌號,也就是地址。取地址符的作用就是得到內存中某一段內容的門牌號,以供後面的需要。指針就是通過一個門牌號找到這個內容,跟取地址是一對
㈥ c語言中"&取地址"是什麼意思
找到變數在內存空間的位置,對變數進行操作時,會找到該處。
㈦ C語言地址運算符&的作用
這里的&是引用,是C++的內容,並不是C語言中的取地址
㈧ C語言中地址操作符、指針操作符分別是什麼
&是地址操作符。
e.g.
int a;
int *b;
b = &a; //&就是取a的地址,即是地址操作。
*是指針操作符,可以聲明指針,也可操作指針所指的數據;
int *p;
*p = 10;