c語言指標的問題求指教,C語言指標的問題 求指教

時間 2022-02-01 18:11:38

1樓:匿名使用者

1、單獨的*(p),(*p)和*p是一樣的在後面跟有其他運算子時由於優先順序的問題,會有差異而對於(*(p)),((*p))和(*p)(就是外面加多了一層括號)這裡就是一樣的了

2、這裡涉及到儲存規則的問題

這裡簡單的說

一開始有「開闢空間時p 被分配給了3001h、3002h 」後面又有「p=2003;」

這裡就是p的佔用了3001h、3002h 兩個單元,且值為2003我們觀察記憶體表(就是下面的那張圖)

3001h下面的值是03、3002h 下面的值是20而對於p的值為2003,可以看出:

3001h儲存了低兩位十六進位制數03,3002h 儲存了高兩位十六進位制數20

就是高地址存低位,低地址存高位

所以:*(3000h)=(3001上的兩位 連線 3000上的兩位)=0300h

3、*p中的p是存放資料的地址

那麼**p中的p就是存放存放了地址的記憶體的地址

2樓:匿名使用者

首先是編譯通不過就算可以執行,結果是不確定的. p是在堆疊中分配的記憶體.當hello world了因為c中陣列的名字本身就是一個指標。不過是指標常量,不能

求c語言大神指教指標問題 10

3樓:匿名使用者

11.所謂在16位的編譯系統上,就是說int是16位的,要佔用兩個位元組

a)由於p的型別是int *所以p++後指向a的第2個元素,p移動的是一個整型單元,2個位元組,所以這個選項是錯的

b)綜上所述,這是對的,一個儲存單元,具體的來說是一個整型儲存單元

c)一個整型兩個位元組,所以p移了2個位元組是對的

d)p指標=&a[1]=a+1這也是對的

12.p=&a[3];即p指向陣列a的第4個元素4,b=p[5];p再向後面找到第5個元素即a[3+5]=a[8]=9

13.p=a後,p可以替代a來訪問陣列,即p[0]=a[0],p[1]=a[1],...

p+5=&a[5]=a+5,由於p是指標,p+5一定是個地址(*(p+5)這樣表示才是值),所以a是對的

4樓:聽不清啊

11)a

12)d

13)a

關於c語言指標的一個小問題 30

5樓:匿名使用者

int a[3][5];

就相當於宣告一個常數指標a, 具有特定位置. 當然a本身不用另外初始化.

而*(a[i]+j), 只是指標數字的操作, 與a本身沒有絕對關係, a代表的地址資料只是用來計算.

關於C語言指標問題,C語言指標的賦值問題

飛翔的蠍子大叔 關於int p1 123這個問題我看了很多資料,在這裡我發表一點看法,該問題非常好,這是c語言需要規範的地方。int p1 123 是非法操作,指標表示地址,地址 123?我是沒有見過這種操作。地址一般用二進位制 八進位制 十六進位制表示,123表示地址根本就是扯淡!這個語句的目的就...

關於C語言指標的指標的疑問,關於C語言的指標問題 指標的地址 1問題

month是指標陣列,每個元素都是一個char型指標,指向一個字串的首地址 p是二級指標,p month,p指向month陣列的首地址,也就是 january 的首地址的地址,p的值就是 january 的首地址,用 s 的格式輸出,就是字串 january 然後p month i,month是陣列...

c語言指標的問題,一個c語言指標的問題

劉文正粉絲 首先說一下,你這不是c語言,是c 問題一 這個就是問題二的內容了.p指向的是a,而p是一個地址.c語言輸出一個字串不是靠一個實際的資料輸出的,而是靠著實際資料的首地址輸出的.問題二 char ch aadsf 你要知道,一個字串的值是這個臨時值的首地址,也就是a的地址.而你又把這個地址給...