C語言指標越界問題,大神指教,求c語言大神指教指標問題

2021-03-04 05:37:09 字數 1305 閱讀 3583

1樓:程式設計大亨

*p是指向int型別的指標,a為陣列首地址,這些理解都是對的,但是,p沒有被初始化

啊,你能直接是用沒有被初始化的變數嘛,那肯定是不行的啊.

所以正確的做法先給p繫結堆記憶體就可以這樣寫了.

#include

using namespace std;

int main()

;*p = array;

cout << (*p)[1] << endl;

system("pause");

return 0;

}編譯完全通過.這裡不貼出來了.點我頭像**.

2樓:

int *p;   //這樣寫才對

int a[10];

p = a;

求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語言指標++的問題搞不懂?求大神指教

5樓:丿艾瑞灬莉婭

陣列名等價於陣列第一個元素的地址,a等價於&a[0]

*ptr_a++,先執行輸出*ptr_a,再ptr_a++,即指向下一個地址

6樓:匿名使用者

答:int *p=&a[1] 即在建立指標p並且初始化的時候將陣列a的第二個元素的地址賦值,使得指標指向8的位置,(*--p)++ 就是指標p先自減1(因為p是int型別的指標,所以自減1就是p所儲存的地址值減去4個位元組)從而使得指標p指向a[0],*是取值運算子,++是字尾形式,所以將5賦值給y後a[0]的值再自加1為6,最後列印y與a[0]的值就是5和6。

c語言陣列(指標)越界訪問,C語言陣列(指標)越界訪問

與編譯器無關,只與記憶體管理機制有關,是作業系統級別的問題,堆疊的讀取方式只是資料結構上的不同,在機器層面,依然是單純的記憶體讀寫操作 陣列越界訪問的危險性不好評估,但確實是最嚴重的危險之一 結果基本上會100 崩潰,但是崩潰的原因很可能不一樣,就算是同一段越界 跑幾遍,原因也可能是不一樣的 指標越...

C語言指標問題,C語言指標問題

include int main void max min sz 0 for i 1 ip i printf max d position d n max,j 1 printf min d position d n min,k 1 return 0 c語言指標問題 10 最好貼上完整程bai序 或標...

c語言求指教,C語言求指教

你的if 1,1,pig 的意義何在?你要想罵人豬直接printf pig 啊!如果pig是個變數,你要申請變數啊!c語言,求指教?main a p1 m 因為p1 m,所以p1 m的值為假,即a 0 b p1 p2 7 b 4 6 7 0 7 7 所以,答案是0和7。c語言誕生於美國的貝爾實驗室,...