C語言中取內容與取地址運算子的問題

時間 2021-05-04 18:27:47

1樓:之良恭午

無**無真相。

是類似於這樣嗎:

inta;

printf("address:

%p\n",

&a);

有的時候,退出程式後立即重新執行一次,使用的變數的地址還會是之前的地址,這在我之前測試程式的時候發現的,每次退出再重新執行程式,有幾次列印的變數的地址都是一樣的。

就算是特意開其它程式,其它程式佔用的記憶體空間也不一定會是你那個程式之前佔用的記憶體空間,可用記憶體越大,程式的記憶體空間的重疊機率就會越大。

2樓:釋來福嘉煙

我明白你什麼意思,指標的概念確實不好理解!

1,先給你說下指標,你把指標理解了運算子的抵消就明白一半了!

指標裡面是儲存的記憶體地址(就像int變數裡面儲存的是整型變數一個意思)。

整型變數儲存在記憶體裡面,我可以通過這個變數名稱來呼叫這個資料,也可以通過指標裡面這個變數的地址加上*(間接訪問運算子),來呼叫這個資料。

2,再說下運算子*和&

*是間接訪問運算子:就是可以通過地址,找到這個地址裡面的變數,所以

*p1就等同於變數a

&是求地址運算子:就是將變數所在的記憶體地址,提取出來

這兩個運算子的運算等級是相同的,也就是說誰距離變數近,就誰先。所以*&a和*(&a)是一樣的,都是先取地址,在對地址進行間接訪問。但是一定要注意*與&的順序,&*a是無效的。

3,再說下題

*運算子就是對地址進行操作的,那麼

*地址的意思就是訪問地址裡面的資料,而&a就是取變數a的地址,所以*&a:

先取變數a的地址

再對地址進行間接訪問,兩個操作就相互抵消了,最後還是變數a。

4,還有什麼不明白的麼?

C語言中如何取整,C語言中取整是怎麼取?

茅玉枝稅子 參與運算量均為整型時,結果也為整型,捨去小數。如果運算量中有一個是實型,則結果為雙精度實型。printf d,d n 10 3,10 3 printf f,f n 10.0 3,10.0 3 c語言有以下幾種取整方法 1 直接賦值給整數變數。如 inti 2.5 或i int 2.5 這...

c語言中取隨機數的函式,C語言中取隨機數的函式

韌勁 1.基本函式 在c語言中取隨機數所需要的函式是 int rand void void srand unsigned int n rand 函式和srand 函式被宣告在標頭檔案stdlib.h中,所以要使用這兩個函式必須包含該標頭檔案 include 2.使用方法 rand 函式返回0到ran...

c語言中《與《的區別是什麼,C語言中 與 的區別是什麼?

舉個例子你就明白了。像 這些比較常用一點兒。比如 int a a 2 與 a 2 效果是不一樣的,a 2,並未改變a的值,但是a 2,效果等於a a 2 a的值實際上是增加了2.所以 也是一樣的,a 2這句只是一個運算,就是a左移2位,但是並未改變a的值,但是a 2,相當於 a a 2,改變了a的值...