1樓:匿名使用者
先給結果
202044
分析一下 +1 到底走多少:
首先 你對你這個+1的目標是什麼 應該是這個變數 那麼這個變數多大 你+1之後就該是多大 結合後面理解這句話;;
第乙個 int a[4][5];
你使用了他的a 也就是說在這裡 他退化成了同型別的指標;;
型別就是 typedef int( *point )[5];
那麼第二個也發現 其實也是一樣的他倆;;;
好了 那麼說一下這個 a 和 p1 都該是point型別 那麼point多大
解讀這個typedef就是 point是一根指標 他指向了乙個有5個int型資料的陣列;;;
這回就明顯了 point 很明顯就是 5*4; int型別是4位元組; 所以結果是20;;
分析後面倆 p2是一根二級指標 他指向的是一根一級指標 一級指標的大小是4 所以+1就是加了4;
最後乙個 p3是乙個具有5個資料的陣列 裡面的每乙個資料是乙個int *., 那麼+1就是加了乙個 int *的大小 = 4;
2樓:匿名使用者
一般c中乙個整型是2個位元組 c++中是4個位元組 我按照2個位元組算
第乙個是乙個陣列
乙個4行5列的陣列,每個成員都是整型
2個位元組
第二個是乙個指標
指向乙個有5個成員的陣列的指標
10個位元組
第三個是乙個指標
就是該指標指向*p2,而*p2是指向乙個整型的指標2個位元組
第四個是乙個陣列
有5個成員的陣列,每個成員都是指向整型的指標2個位元組
C語言若變數均己正確定義並賦值,以下合法的C語言賦值語句是A x y
a是正確的,a y 5 先判斷y 5,如果y的值是5,那麼,y 5的值為真,即1,再把1賦值給版x,最後x的值為1,否則,權如果y的值不是5,是x的值為0 b不正確,要求兩邊都是整數 c不正確,x n不能作左值 d不正確,5是常數,不能作左值 a是對的,給x賦值,值為y 5這個式子的值b的錯誤是沒有...
c指標變數的問題,C語言指標變數大小的問題
p 1,是把1賦值給p所指向的物件,而p 1是把1賦值給p,這個1是被當做位址的。p 1和p 1是不同的概念,p 1 是賦值語句,還有在c語言中 1 0 是作為真假來用的,就相當於布林型數一樣。這兩個語句都是合法的。區別就是指標 的意思是取位址的意思。p是乙個指標,他的值是記憶體中一塊記憶體的位址,...
C語言中自動變數是什麼變數?它是動態變數的意思嗎?怎麼理解
區域性變數,如不作專門說明為靜態變數,都是動態分配儲存空間,儲存回在動態儲存區中。這答種變數叫自動變數。這種變數只在定義它們的時候才建立,在定義它們的函式返回時系統 變數所佔儲存空間。對這些變數儲存空間的分配和 是由系統自動完成的,所以也叫自動變數。一般情況下,不作專門說明的區域性變數,均是自動變數...