码农公寓

C语言17(字符串、指针的几点说明)

2024-03-05 17:43:13

字符串、指针的几点说明

1.字符串操作

1.对字符串操作时,要最快想到’\0‘的能力。
2.字符串可以相减,’\0’相减时相当于数字0

2.指针

1.无类型指针不能+1,不能解析
无类型指针的应用是fun函数

void my_memcpy(void*dest,void*src,int elemsize,int n)
{
	char* dp=(char*)dest;
	char* sr=(char*)src;
	for(int i=0;i<elemsize*n;++i)
	{
		dp[i]=sr[i];
	}
}

2.野指针:未进行初始化的指针
解决办法:
1.定义空指针
2.指向合法地址

3.失能指针(失效指针):指向的空间已经被释放了
只能凭借经验判断,没法直接判断
4.空指针:不能从0地址取值

3.断言assert

断言式内为假时中断,为真时向下执行

assert(br!=NULL);

断言只在debug下有用
断言的本质是,将类型强转为void类型,因为下面的代码不可能执行

assert(br!=NULL)&&assert(n>0)
//因为会变成
assert(br!=NULL)&&void