奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

C語言

C語言的指針類型解析

時間:2024-09-14 00:19:40 C語言 我要投稿
  • 相關推薦

C語言的指針類型解析

  大家知道C語言的指針有哪些類型嗎?下面小編為大家整理了C語言的指針類型解析,希望能幫到大家!

  指針存儲了內存的地址,同時指針是有類型的,如int*,float*,那么,一個自然的猜想就是指針變量應該存儲這兩方面的信息:地址和指針類型,比如,就像下面的結構體:

  復制代碼 代碼如下:

  struct pointer{

  long address;

  int type;

  }

  舉個例子:打印sizeof(int*),值為4,可見4字節是存儲內存地址用的,反過來就說明指針并沒有存儲類型信息的地方,那么指針的類型信息存放在哪兒呢?

  下面剖析一段簡單的代碼。

  復制代碼 代碼如下:

  // ma.cpp : 定義控制臺應用程序的入口點。

  #include "stdafx.h"

  char gi;

  char *pi;

  void main()

  {

  pi=&gi;

  *pi=12;

  }

  反匯編結果:

  復制代碼 代碼如下:

  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

  }

  可見byte就說明了指針類型的信息。

  總結:C語言的指針類型包括兩方面的信息:一是地址,存放在指針變量中;二是類型信息,關乎于讀寫的長度,沒有存儲在指針變量中,位于用該指針讀寫時的mov指令中,不同的讀寫長度對應的mov指令不同。

  另外:在指針強制轉換時,也是這個原理。就是指針強制轉換的影響不是在轉換的時候發生,而是在用轉換后的身份去訪問內存時體現到了指令中。

  那么指針在什么情況下轉換是安全的呢?就是看用這個轉換后的身份去訪問內存是否安全。簡要的說有以下原則:如果轉換后指針指向的數據類型大小小于原數據類型大小,那么用該轉換后的指針訪問就不會越過原數據的內存,是安全的,否則危險,要越界。

【C語言的指針類型解析】相關文章:

C語言的指針類型詳解05-21

C語言中野指針的深入解析08-06

解析C語言編程中指針賦值的實例06-16

C語言指針的概念08-20

C語言中各種類型的指針的概念總結11-24

C語言指針函數和函數指針詳解09-29

如何理解C語言指針05-19

C語言中的指針是什么08-08

如何使用C語言數組指針09-14

C語言復雜指針是什么08-15

主站蜘蛛池模板: 建平县| 旺苍县| 商丘市| 渝中区| 大连市| 桑植县| 石嘴山市| 海城市| 安化县| 宜昌市| 布尔津县| 昔阳县| 南汇区| 江门市| 安新县| 大连市| 大埔区| 台湾省| 邵武市| 镇平县| 临邑县| 金门县| 宣城市| 泰顺县| 常州市| 霍州市| 曲阳县| 富宁县| 揭阳市| 泰和县| 方正县| 读书| 伊宁市| 梁河县| 桂阳县| 全南县| 石柱| 朝阳区| 县级市| 衢州市| 沾益县|