VC中的令人混淆的字元及字串指標名稱

2021-04-24 00:23:18 字數 1317 閱讀 1944

在c語言中,表示字元,字串很簡單,字元用char表示,字串可以用char,char*來表示,但在vc下,由於採用了型別定義,所以字元,字串指標名稱可以用多種方式標識,如不抓住規律,則很易將人搞暈。

(1)字元,vc中的字元有八位字元和十六位字元兩種。8位字元,即傳統c程式設計下的char型別,vc下的表示:

char 同char   8位無符號數

uchar unsigned char

vc中加入了16位unicode碼的字元,定義乙個unicode字元用wchar_t,它相當於char,但長度為16位(兩個位元組)

wchar 同wchar_t 16位無符號數

為了遮蔽兩者之間的差別,實現兩者的可移植性,又定義了乙個新的名稱。

tchcar 同char或wchar_t  當機器支援unicode碼時,為wchar_t,否則為char

規律:四個都能記住更好,不能記的話,就記tchar,不會錯

(2)指向字元的指標,與基本字元一一對應:

pchar: 同char* 是指向某個字元(char型別)的指標,與指向字串的指標不同,指向字串的指標只能指向字串的首字元

puchar 同uchar* 指向(uchar)的指標.

pwchar 同wchar* 指向(wchar)的指標

ptchar 同tchcar* 指向(tchar)的指標

規律很簡單,在單詞前加上p

(3)指向字串的指標

先說一下長指標:指標分為指標和長指標,如(pstr,lpstr),在16位系統中,指標長度是16位的,長指標是32位的,而在32位系統中,指標和長指標的長度均為32位,考慮到現在的系統都是32位的,所以可以認為指標等於長指標型別。

pstr,lpstr 等同於char*,指向字串(8位)的指標 與pchar不同的是,它只是指向字串的首字元

pwstr,lpwstr 等同於wchar*,指向字串(16位)的指標

ptstr,lptstr 等同於tchar*,指向字串(支援unicode:16位,否則8位)的指標

規律:p與lp等同,str等同於char*,以此類推

(4)指向常量的字串指標

這種指標指向的字串是不可變的,有下列幾種指標

pcstr,lpcstr 等同於const char*,指向常量字串(8位)的指標

pcwstr,lpcwstr 等同於const wchar*,指向常量字串(16位)的指標

pctstr,lpctstr 等同於const tchar*,指向常量字串(支援unicode:16位,否則8位)的指標

規律:很簡單,插入乙個字母"c"

掌握了上面這些規律,記住這些識別符號還困難嗎?

混淆字串

混淆字串 基礎知識 物極必反。我們已經研究了閱讀windows核心的方法,現在開始討論在我們自己的驅動編碼中採用特殊的編碼方法,來簡單地防止反彙編閱讀。這是有趣的一種事態 一方面我們研究如何閱讀別人的 尤其是ms的 另一方面,我們不得不採取措施保護自己的技術不被他人簡單地竊取。我這裡要用到的這種方法...

混淆字串

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!物極必反。我們已經研究了閱讀windows核心的方法,現在開始討論在我們自己的驅動編碼中採用特殊的編碼方法,來簡單地防止反彙編閱讀。這是有趣的一種事態 一方面我們研究如何閱讀別人的 尤其是ms的 另一方面,我們不得不採取措施保護自己的技術不被他人簡...

VC中,字串的分割

想請教下,在vc當中,要重新寫乙個 類似 split 的 類該怎麼做?現在的要求是,對乙個字串進行分割,並放到陣列當中去.基本實現想法如下 定義 char str 256 123,456,789 10 將要被分割的字串 char pstrbuf 256 字串陣列,用來存放分開的字串 int nbuf...