當前位置:首頁 » 編程語言 » c語言取地址運算的練習題
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言取地址運算的練習題

發布時間: 2023-05-09 19:27:00

c語言的數組元素地址計算

要看數組的類型
比如int型,以一個int型數據4個位元組,仿轎內存的起始地址為1000來說
int a[5]的內存中慶地址:
a[0] 1000
a[1] 1004
a[2] 1008
a[3] 1012
a[4] 1016

int a[2][3]的內存地址:
a[0][0] 1000
a[0][1] 1004
a[0][2] 1008
a[1][0] 1012
a[1][1] 1016
a[1][2] 1020

int a[2][2][3]
a[0][0][0] 1000
a[0][0][1] 1004
a[0][0][2] 1008
a[0][1][0] 1012
a[0][1][1] 1016
a[0][1][2] 1020
a[1][0][0] 1024
a[1][0][1] 1028
a[1][0][2] 1032
a[1][1][0] 1036
a[1][1][1] 1040
a[1][1][2] 1044

找找規賣大握律就懂了

② C語言關於取值和取址

1、首先打開Visual C++,點擊左上角「文件」菜單按鈕,並點擊「新建」按鈕。在彈出的窗口中首先選擇「文件」選項卡,在左側列表中選取「C++ Source File」項。

③ C語言-指針與取地址符問題

scanf及fscanf、sscanf等函數的原理是將數據讀入到以某個內存地址為起始的長度為格式控制字元串給定的數據類型長度對應的連續內存空間內。例如scanf("%d",0x401040)代表從輸入流中讀取一個整型數,並將它保存到內存地址0x401040開始的相當於int型長度的內存空間內(x86上為4個位元組)。因此,對於整型變數a來說,應該用scanf("%d",&a)代表將數據讀入並保存到a對應的地址空間內。這是&stu[i].grade前面為什麼需要取地址符&的原因。而對於char id[10]來說,id是一個char型數組名同時也是指向該數組首元的指針名,即id是一個char*型指針。而我們都知道指針本身保存的就是內存地址的值,因此直接用scanf("%s",id)就可以將一串字元讀入id所指向的內存空間內。注意前面的格式控制符%s代表一個不含空白符號的字元串。

④ C語言有關取地址

因為你輸入m和n的語句有錯誤。。。
scanf("%d,%d",&m,&n);這里第一個逗號要去掉拿局行。。。或者你輸入的時候輸入m後輸入逗號,再輸入n
上面的如果你做的是正確的,那麼看這個程序
如果將s=s+1改成s=m+1,那消嘩么while循環體內每次執臘宏行s=m+1之後,s的值都是固定的,也就是如果m=10,那麼s=m+1之後,s=11,每次循環s都是11,這樣這個循環就是死循環。。。

⑤ 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語言中 取內容與取地址運算符的問題

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

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

⑦ 越搞越糊塗 請教: C語言中, 已知變數x的值是另一個未知的地址, 現要取這個未知變數的值.

呵呵,如果你是初學的,那你對地址這種東西想太多了啦。沒必要這樣子想的。
在計算機中,地址跟生活中的地址差不多,也就是一個數字而已。
你說的這個問題,已經是多級指針的問題了的呢。每個變數x自身都是一個值,這個值x就存放在&x上面。
你要記住這個:「*地址」 這個是獲取到 「值」 的攜坦 ,「&變數」 是獲取到 「變數的地址」 的。

你棚隱鋒的問題是:C語言中, 已知變數x的值是另一個未知的地址, 現要取這個未知變數的值。
則:*x 就是未知地址上的值了。
理論上就是這么簡單了……
但你鏈晌所補充的:如果x=0x168, 在地址0x168中有一個值0x258, 如何從x獲得0x258.&x是x的地址, *&x取的是x的值.....
則:x 的值是地址,那意味著x的值就是地址了啦,於是 *x 就是等於 0x258 ,
因為 0x258也是個地址,所以你要取值的話,就是 **x,於是這樣子就可以是到0x258這個地址上的值了……
**x 可以寫成 *(*x),而 *x 不就是等於0x258 么……

⑧ 用C語言去取一個給定地址里的值

沒看太懂您的問題,裂閉做不過取地址內的值,一般用同類型指針的解引用,如p是一個有效指針,*p即肆衡為p指向態猛地址的值。

⑨ c語言 已知地址 取值

樓主你好

兩種方彎哪式:
(1)使用孫基c語言取地址符&
&address[0]就是對應的存儲地址
(2)數組名是首地址
那麼address對應的就是address[0]的地址

希望則鬧謹能幫助你哈