#include<stdio.h>

#include<string.h>

int main()

{

char arr1[20] = "xxxxxxxxxxxx";

char arr2[] = "hello";

strcpy(arr1, arr2);

printf("%s\n",arr1);

return 0;

}

调试技巧,代码优化_#include


/*复杂版*/

void my_strcpy(char* dest, char* str)

{

while (*str != '\0')

{

 *dest = *str;

 *dest++;

 *str++;

}

*dest = *str;

}


/*优化版*/

#include<assert.h>

void my_strcpy(char* dest, const char*str)

{

//const修饰变量,称为常变量,不能被修改,但还是变量

//assert(*str != null);//断言

while (*dest++ = *str++)

{

 ;

}

}


int main()

{

char arr1[20] = "xxxxxxxxxxxx";

char arr2[] = "hello";

my_strcpy(arr1, arr2);

printf("%s\n", arr1);

return 0;

}

调试技巧,代码优化_#include_02


int main()

{

 int num = 10;

 int n = 100;

 int*  p = &num;

 p = &n;

 *p = 20;

printf("%d\n", num);

printf("%p\n", num);

printf("%p\n", n);

printf("%d\n", n);

printf("%p\n", num);

return 0;

}

调试技巧,代码优化_#include_03