概述
前言
自学笔记,没有历史知识铺垫(省略百度部分)C语言字符空间与非字符空间
一、字符空间与非字符空间概念
字符空间与非字符空间标识
空间首地址结束标识
二、字符空间
首地址:char空间当作字符串来用,通常字符空间操作的函数以str开头,如int strlen(const char *p);结束标识: 或者0x00
三、非字符空间
首地址:int *p /unsigned char *p /short *p /struct a *p 一般非const char *p都时非字符空间结束标识: 通常函数会提供长度指定的参数int len
四、void * 非字符空间形参化
为了避免参数的长度不一致,导致需要建立多个重复函数处理的问题
func(void * ,size_t len){...}
注意:
遇到void *通常不使用char *p[]开辟空间,可以使用unsigned char *p[] 除非知道该函数参数具体是什么逻辑如果函数形参是int *p之类带有数据类型,通常指的是单独空间而不是连续空间的传递
void func1(void *p, size_t len) { unsigned char *temp = (unsigned char *)p; //41 printf("%Xn", temp[0]); } int main() { char a = 'A'; func1(&a, sizeof(a)); return 0; }
void func1(void *p, size_t len) { //4 循环处理使用 printf("%dn", len); unsigned char *temp = (unsigned char *)p; //1 printf("%Xn", temp[0]); //2 printf("%Xn", temp[1]); //3 printf("%Xn", temp[2]); //3 printf("%Xn", temp[3]); } int main() { unsigned char a[] = {1,3,5,7}; func1(a, sizeof(a)); return 0; }
总结
本章主要为C语言字符空间与非字符空间
本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注靠谱客的更多内容!
最后
以上就是开放黑米为你收集整理的C语言的字符空间与非字符空间你了解吗的全部内容,希望文章能够帮你解决C语言的字符空间与非字符空间你了解吗所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复