您好,登錄后才能下訂單哦!
#include <stdio.h> //2018-05-29 /* 指針變量的運算 指針不能相加,不能相乘,也不能相除 如果兩個指針變量指向的是同一快連續(xù)空間中的不同存儲單元 則這兩個指針變量才可以相減 int main(void) { int i = 5; int j = 10; int * p = &i; int * q = &j; int a[5]; p = &a[1]; q = &a[4]; printf("%d個單位\n",q-p); return 0; } */ //—————————————————————————————————————————————————————— /* 一個指針變量到底占幾個字節(jié) 預(yù)備知識: sizeof(數(shù)組類型) 功能:返回值就是該數(shù)據(jù)類型占的自己數(shù) 例子: sizeof(int) = 4 sizeof(char) = 1 sizeof(double)=8 假設(shè)p指向char類型變量(1個字節(jié)) 假設(shè)q指向int類型變量(4個字節(jié)) 假設(shè)p指向double類型變量(8個字節(jié)) p q r 本身所占字節(jié)數(shù)是否一樣 答案:一樣都是4 總結(jié): 一個指針變量,無論它指向的變量占幾個字節(jié),該指針變量本身只占4個字節(jié) 可以這樣理解:p,q, r代表的都是地址,若以10進制輸出則都是×××,所以是4個字節(jié)(個人想法) 看下面的輸出就可以知道 printf("%d,%d,%d\n",sizeof(p),sizeof(q),sizeof(r)); //輸出4,4,4 printf("%d,%d,%d\n",sizeof(*p),sizeof(*q),sizeof(*r)); //輸出1,4,8 #include <stdio.h> int main(void) { char ch = 'A'; int a = 12; double b = 52.4; char *p = &ch; int *q = &a; double * r = &b; printf("%d,%d,%d\n",sizeof(p),sizeof(q),sizeof(r)); //輸出4,4,4 printf("%d,%d,%d\n",sizeof(*p),sizeof(*q),sizeof(*r)); //輸出1,4,8 sizeof(p); return 0; } */
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。