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的地址.而你又把這個地址給...