strcpy、字符串拷贝
const 修饰对象不能被改变
assert(dest != null); 断言 保证指针的有效性
--------------------strcpy、字符串拷贝---------------
void my_strcpy(char* dest, char* src)
{
if (dest != NULL && src != NULL)
{
while (*dest++ = *src++) // '/0' ASCII为0,则为假
{
;
}
}
}
int main()
{
//strcpy
//字符串拷贝
char arr1[] = "#############";
char arr2[] = "student";
my_strcpy(arr1, arr2);
printf("%s\n", arr1);
return 0;
}
// 优化
--------------------strcpy、字符串拷贝---------------
void my_strcpy(char* dest, char* src)
{
assert(dest != NULL);//断言 //保证指针的有效性
assert(src != NULL);
while (*dest++ = *src++) // '/0' ASCII为0,则为假
{
;
}
}
int main()
{
//strcpy
//字符串拷贝
char arr1[] = "#############";
char arr2[] = "student";
my_strcpy(arr1, arr2);
printf("%s\n", arr1);
return 0;
}
// 再次优化
//--------------------strcpy、字符串拷贝---------------
char* my_strcpy(char* dest, const char* src) // const-> src 不可被修改
{
char* ret = dest;
assert(dest != NULL);
assert(src != NULL);
//把src指向的字符串拷贝到dest指向的空间,包含'\0'字符
while (*dest++ = *src++)
{
;
}
return ret;
}
int main()
{
//strcpy
//字符串拷贝
char arr1[] = "#############";
char arr2[] = "student";
printf("%s\n", my_strcpy(arr1, arr2));
return 0;
}
//-----------------------const-----------------------
int main()
{
const int num = 10;
const int * p = #
*p = 20;
err const放在指针变量的*左边是,修饰的是*p,也就是说,不能通过p来改变*p(num)的值
int * const p = #
err const放在指针变量的*右边是,修饰的是指针变量p本身,p不能被改变
int n = 100;
p = &n;
printf("%d\n",num);
return 0;
}