国产女人18毛片水真多18精品, 一区二区三区中文字-亚洲精品女国产, 欧美熟妇老熟妇88888久久久久, 一级毛片免费观看亚洲欧美国产精品,大波霸美女视频,日韩欧美激情V影院,熟女人伦21p,亚洲精品女国产,国产 乱子伦 在线

C語(yǔ)言的指針類(lèi)型講解

時(shí)間:2025-12-11 21:42:19 C語(yǔ)言

C語(yǔ)言的指針類(lèi)型講解

  C語(yǔ)言的指針類(lèi)型包括兩方面的信息:一是地址,存放在指針變量中;二是類(lèi)型信息,下面是小編為大家整理的C語(yǔ)言的指針類(lèi)型講解,歡迎參考~

  指針存儲(chǔ)了內(nèi)存的地址,同時(shí)指針是有類(lèi)型的,如int*,float*,那么,一個(gè)自然的猜想就是指針變量應(yīng)該存儲(chǔ)這兩方面的信息:地址和指針類(lèi)型,比如,就像下面的結(jié)構(gòu)體:

  代碼如下:

  struct pointer{

  long address;

  int type;

  }

  舉個(gè)例子:打印sizeof(int*),值為4,可見(jiàn)4字節(jié)是存儲(chǔ)內(nèi)存地址用的,反過(guò)來(lái)就說(shuō)明指針并沒(méi)有存儲(chǔ)類(lèi)型信息的地方,那么指針的類(lèi)型信息存放在哪兒呢?

  下面剖析一段簡(jiǎn)單的代碼。

  代碼如下:

  /pic/p>

  #include "stdafx.h"

  char gi;

  char *pi;

  void main()

  {

  pi=&gi;

  *pi=12;

  }

  反匯編結(jié)果:

  代碼如下:

  pi=&gi;

  0041137E C7 05 78 71 41 00 7C 71 41 00 mov     dword ptr [pi (417178h)],offset gi (41717Ch)

  *pi=12;

  00411388 A1 78 71 41 00  mov     eax,dword ptr [pi (417178h)]

  0041138D C6 00 0C     mov     byte ptr [eax],0Ch

  }

  可見(jiàn)byte就說(shuō)明了指針類(lèi)型的信息。

  總結(jié):C語(yǔ)言的指針類(lèi)型包括兩方面的信息:一是地址,存放在指針變量中;二是類(lèi)型信息,關(guān)乎于讀寫(xiě)的長(zhǎng)度,沒(méi)有存儲(chǔ)在指針變量中,位于用該指針讀寫(xiě)時(shí)的mov指令中,不同的讀寫(xiě)長(zhǎng)度對(duì)應(yīng)的mov指令不同。

  另外:在指針強(qiáng)制轉(zhuǎn)換時(shí),也是這個(gè)原理。就是指針強(qiáng)制轉(zhuǎn)換的影響不是在轉(zhuǎn)換的時(shí)候發(fā)生,而是在用轉(zhuǎn)換后的身份去訪問(wèn)內(nèi)存時(shí)體現(xiàn)到了指令中。

  那么指針在什么情況下轉(zhuǎn)換是安全的呢?就是看用這個(gè)轉(zhuǎn)換后的身份去訪問(wèn)內(nèi)存是否安全。

  簡(jiǎn)要的說(shuō)有以下原則:如果轉(zhuǎn)換后指針指向的數(shù)據(jù)類(lèi)型大小小于原數(shù)據(jù)類(lèi)型大小,那么用該轉(zhuǎn)換后的指針訪問(wèn)就不會(huì)越過(guò)原數(shù)據(jù)的內(nèi)存,是安全的,否則危險(xiǎn),要

【C語(yǔ)言的指針類(lèi)型講解】相關(guān)文章:

C語(yǔ)言指針的長(zhǎng)度和類(lèi)型講解12-21

C語(yǔ)言的指針類(lèi)型解析12-25

C語(yǔ)言的指針類(lèi)型詳解12-29

C語(yǔ)言指針變量的類(lèi)型01-23

C語(yǔ)言指針的長(zhǎng)度和類(lèi)型詳解03-05

C語(yǔ)言的指針12-21

C語(yǔ)言中各種類(lèi)型的指針的概念02-14

C語(yǔ)言指針的總結(jié)11-24

C語(yǔ)言指針的傳遞03-17