1樓:
p,指標變數佔用16位,存放地址。地址是整數,給指標賦值後,所以指標內容是整數。
p=a[0],則p的內容是a[0][0]的地址,即相當於p=&a[0][0];
因為p是從a[0]開始增加的,每增加一,則指向陣列中的下一個元素的地址,
所以p-a[0]算出p指向a[0][0]後的第幾個元素,若是4的倍數,則換行。
因為a[0][0]的地址並不一定是從0開始分配的,所以不能用絕對地址,要用相對地址判斷換行
2樓:匿名使用者
p是指標,存放的是資料在記憶體中的地址,如果被定義為指向a[0][0],那麼它存放的就是a[0][0]這個數的地址。
上面的陣列是3行4列,但在記憶體裡是12個數連續存放的,所以通過(p - a[0]) % 4來換行
3樓:匿名使用者
指標p不是一個整數,它代表記憶體地址的一個值。假如有一個地址單元,它的編號位1001,它裡面存放一個int型的16,那麼*p=16,而p=1001;
陣列是程式編譯後作業系統分配的一段地址,它的初始值不可**,所以你的程式中p要先減掉初始值a[0]後才是一個整形的數。
4樓:匿名使用者
lihai
shangmiande
在c語言中指標佔用多少位元組,在C語言中一個指標佔用多少位元組。
一個指標變數在記憶體中佔兩個位元組 all模式編譯 一個指標變數在記憶體中佔四個位元組 32位機器上 一般都是32位機器的,所以四個位元組咯。指標即為地址,指標幾個位元組跟語言無關,而是跟系統的定址能力有關。指標是一個特殊的變數,它裡面儲存的數值被解釋成為記憶體裡的一個地址。要搞清一個指標需要搞清指...
c語言中指標和引用的區別,C語言中指標和引用的區別
指標,全稱為指標變數,是用來儲存記憶體地址的一種變數。程式中,一般通過指標來訪問其指向的記憶體地址中的內容 資料 引用,是c 中提出來的一種新的使用變數的方式,即,給實際變數起個別名,通過這個別名來引用實際的變數。標準c中不支援變數的引用。這兩個概念沒有任何相關性。指標是實實在在的變數,有自己的記憶...
請教c語言中指標陣列的問題如下
你好,你猜的沒錯,的確是指標問題,你想想哈,temp是一個char,你每一次都把 temp這地址賦值給c i 導致c i 用的記憶體空間始終是temp所在的記憶體空間。fgets temp,6,fp 這語句導致temp記憶體空間存放的是 zzzzz 而每一個c i 都指向temp所在記憶體空間,所以...