C語(yǔ)言的字符空間與非字符空間你了解嗎
前言
自學(xué)筆記,沒(méi)有歷史知識(shí)鋪墊(省略百度部分)C語(yǔ)言字符空間與非字符空間
一、字符空間與非字符空間概念
字符空間與非字符空間標(biāo)識(shí)
空間首地址結(jié)束標(biāo)識(shí)
二、字符空間
首地址:char空間當(dāng)作字符串來(lái)用,通常字符空間操作的函數(shù)以str開頭,如int strlen(const char *p);結(jié)束標(biāo)識(shí):\0或者0x00
三、非字符空間
首地址:int *p /unsigned char *p /short *p /struct a *p 一般非const char *p都時(shí)非字符空間結(jié)束標(biāo)識(shí): 通常函數(shù)會(huì)提供長(zhǎng)度指定的參數(shù)int len
四、void * 非字符空間形參化
為了避免參數(shù)的長(zhǎng)度不一致,導(dǎo)致需要建立多個(gè)重復(fù)函數(shù)處理的問(wèn)題
func(void * ,size_t len){...}
注意:
遇到void *通常不使用char *p[]開辟空間,可以使用unsigned char *p[] 除非知道該函數(shù)參數(shù)具體是什么邏輯如果函數(shù)形參是int *p之類帶有數(shù)據(jù)類型,通常指的是單獨(dú)空間而不是連續(xù)空間的傳遞
void func1(void *p, size_t len) { unsigned char *temp = (unsigned char *)p; //41 printf("%X\n", temp[0]); } int main() { char a = 'A'; func1(&a, sizeof(a)); return 0; }
void func1(void *p, size_t len) { //4 循環(huán)處理使用 printf("%d\n", len); unsigned char *temp = (unsigned char *)p; //1 printf("%X\n", temp[0]); //2 printf("%X\n", temp[1]); //3 printf("%X\n", temp[2]); //3 printf("%X\n", temp[3]); } int main() { unsigned char a[] = {1,3,5,7}; func1(a, sizeof(a)); return 0; }
總結(jié)
本章主要為C語(yǔ)言字符空間與非字符空間
本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C語(yǔ)言拓展實(shí)現(xiàn)Lua sleep函數(shù)
這篇文章主要介紹了C語(yǔ)言拓展實(shí)現(xiàn)Lua sleep函數(shù),本文使用C語(yǔ)言寫出sleep函數(shù),編譯后在Lua中調(diào)用,需要的朋友可以參考下2015-04-04C++驅(qū)動(dòng)bash的實(shí)現(xiàn)代碼
這篇文章主要介紹了C++驅(qū)動(dòng)bash的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-11-11C++之構(gòu)造函數(shù)默認(rèn)值設(shè)置方式
這篇文章主要介紹了C++之構(gòu)造函數(shù)默認(rèn)值設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08C++詳細(xì)分析lambda表達(dá)式的本質(zhì)
Lambda表達(dá)式是現(xiàn)代C++在C ++ 11和更高版本中的一個(gè)新的語(yǔ)法糖 ,在C++11、C++14、C++17和C++20中Lambda表達(dá)的內(nèi)容還在不斷更新。 lambda表達(dá)式(也稱為lambda函數(shù))是在調(diào)用或作為函數(shù)參數(shù)傳遞的位置處定義匿名函數(shù)對(duì)象的便捷方法2022-06-06C++如何調(diào)用簡(jiǎn)單的python程序
這篇文章主要介紹了C++如何調(diào)用簡(jiǎn)單的python程序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02