时间:2022-06-25 08:07:45 | 栏目:C代码 | 点击:次
自学笔记,没有历史知识铺垫(省略百度部分)C语言字符空间与非字符空间
字符空间与非字符空间标识
空间首地址结束标识
首地址:char空间当作字符串来用,通常字符空间操作的函数以str开头,如int strlen(const char *p);结束标识:\0或者0x00
首地址:int *p /unsigned char *p /short *p /struct a *p 一般非const char *p都时非字符空间结束标识: 通常函数会提供长度指定的参数int len
为了避免参数的长度不一致,导致需要建立多个重复函数处理的问题
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("%X\n", temp[0]);
}
int main()
{
char a = 'A';
func1(&a, sizeof(a));
return 0;
}
void func1(void *p, size_t len)
{
//4 循环处理使用
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;
}
本章主要为C语言字符空间与非字符空间