1樓:匿名使用者
指標變數所bai需要的儲存
空間的確du是相同的zhi
。它都需要最高字長dao的儲存空間。
但在指標指向內不同型別的容
資料型別空間時,指標操作是不同的,見下示例**:
unsigned char * ptrchar;
unsigned int * ptrint;
ptrchar=(unsigned char *)0x0000;
ptrint=(unsigned int *)0x0000;
ptrchar++;
ptrint++;
最後兩個指標++操作,看**都是用的加加操作符,但實際上,指向無符號char型資料的指標,在加加操作後,ptrchar中的值是0x0001,因為每個無符號char只佔用乙個位元組,而ptrint在加加操作後,其值是0x0004,因為每個整型佔用4個位元組。
2樓:安城百合子
這是c語言的語法要求,因為不同型別的指標,在作+-運算時,它的步長是不一樣的。
3樓:
所有的指標變數佔用的記憶體大小是相同的,這個記憶體中儲存的不是資料的值,而是指標的
回值,指標的值答是乙個記憶體位址,也就是指標指向資料的首位址,根據這個位址只能得到指標指向資料的開始位置,並不知道這是什麼型別的資料,所以指標的型別就決定了資料的型別
4樓:匿名使用者
你是什麼指標?很多語言都有指標的。
指標儲存的是資料的首位址,它指向和它同一型別的資料。跟佔用多少空間沒關係。用int型指向int型,double指向double型,等等。如果不匹配會發生錯誤。
5樓:匿名使用者
是的,它只是要知道你指向的資料是什麼型別而已。
6樓:匿名使用者
所有指標 都是佔來用4個位元組這個是自沒錯
但是為什麼bai不能用du呢?給你舉個例子。
int a = 0x00000fff;
char *p = &a;
printf("%d\n", *p);
結果是255。也zhi
就是說 每一dao個型別的指標所取的bit長度不一樣!char型別佔用8bit, int 32bit,short 16bit。
上邊這個例子不好
由於 是有符號的 所以255 打出來是-1改一下int a = 0x00000f0f;
這樣的話就是15了
指標指向不同型別資料時,指標變數佔用多大空間?
7樓:時方仲孫曄
變數的指標就是變數的位址。存放變數位址的變數是指標變數。即在c語言中,允許用乙個變數來存放指標,這種變數稱為指標變數。
因此,乙個指標變數的值就是某個變數的位址或稱為某變數的指標。
為了表示指標變數和它所指向的變數之間的關係,在程式中用「*」符號表示「指向」,例如,i_pointer代表指標變數,而*i_pointer是i_pointer所指向的變數。
因此,下面兩個語句作用相同:
i=3;
*i_pointer=3;
第二個語句的含義是將3賦給指標變數i_pointer所指向的變數。
8樓:貝茉光盼香
在c中,
指標只有3種:
指向簡單變數的,
指向結構體變數的,
指向函式的.
他們的大小和指向的型別無關,
基本都是一樣的,
等於位址寬度.
在16位的位址的系統裡,
用段:偏移
來表示乙個位址,
當只用偏移的時候(段內)稱為near指標,當段偏移都用的時候(跨段),
稱為far指標,
far指標佔用空間大於near指標.
但是在32位系統中,
指標大小是統一的.
在c++中,
指向簡單變數,
簡單結構體物件,
和簡單函式的指標是和c一樣的.
但是,對於有多繼承的物件,
指標可能需要記錄一些額外的資訊,
可能會更大一些.
你可以用
sizeof(xx)來測試各種指標的大小,需要注意的是,
不同的編譯器結果可能不一樣.
最後的結果是:
一般而言,
指標大小是固定的,
並不因為其指向的物件型別而改變.
然而並不總是這樣.
9樓:王一是個好青年
指標變數佔用空間大小等於位址寬度。
指標變數的大小和指向的型別無直接關聯,基本都是一樣的,等於位址寬度。
同一編譯器下,同一編譯選項下所有型別的指標變數大小都是一樣的,指標變數的大小是編譯器所對應的系統環境所決定的,或者說是由編譯器決定的。
指標變數是指存放位址的變數。因位址的改變而做出指定性質的衡量變法。
10樓:逢茂表正奇
c,指標3種:
指向簡單變數
,指向結構體變數
,指向函式.指向
型別關,
基本都,
等於址寬度.
16位址系統,
用段:偏移
表示址,
用偏移候(段內)稱
near指標,
段偏移都用
候(跨段),
稱far指標,
far指標佔用空間
於near指標.
32位系統,指標
統.c++,
指向簡單變數,
簡單結構體
象,簡單函式指標c
.,於繼承
象,指標
能需要記錄
些額外資訊,能更
些.用sizeof(xx)
測試各種指標
,需要注意,同
編譯器結能.
結:般言,
指標固定,並
其指向象型別
改變.並總.
在c中等是不是符號兩邊的資料型別要相同啊例如
嗯,符號兩邊必須是同樣的資料型別 這些符號兩邊可以是表示式,可以是變數,可以是常量,列舉值等等 那麼就會用表示式的返回值型別,變數值型別,常量的型別進行比較。只有型別相同才可以比較。如果型別不同,那麼編譯器會進行優化,例如 你將整形int值和雙精度型double值進行比較,編譯器會將整形轉化為雙精度...
幾進製的數和資料型別有什麼聯絡呀?比如說十六進位製數是什麼資料型別
數的進製和型別沒有關係 十六進位製數可以是int,long,double long等等 數的進製跟型別沒啥關係,它只是用於編碼用的,如用乙個八位的二進位制編碼表示乙個char型的字元。而數的型別是指這個資料是整數 字元還是小數什麼的 byte和16進製制有什麼聯絡和區別?byte是計算機資料單位,1...
為什麼孩子要跟父親姓,為什麼孩子要隨父親的姓氏,有什麼由來
人類社會分為母系社會和父系社會兩個階段。剛開始是母系社會,那時候男人打獵,女人在家養牲畜和種糧食,因為工具落後,男人打的獵物往往比女人種養的少,所以家庭中以女人為主,那時是隨母姓。後來,隨著生產力的發展,先進工具的使用,男人的作用越來越大,家庭開始以男人為主,就變成父系社會,所以跟著父親姓。這跟血緣...