既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
;
}
return ret; //返回目标串的首地址
}
int main()
{
char arr[20];
printf(“%s\n”, my_strcpy(arr, “i love you!”));
system(“pause”);
return 0;
}
* 关于assert的补充介绍
**assert**就是判断指针变量是否为**空值**,当不为空的时候,程序继续执行下一步,当为空值时,则会**报错**,结果会提示错误在哪一行。在上述的例子中,它类似于**if**语句,但if不会做任何判断。当取消assert时,直接加上**#define NDEBUG**
//#define NDEBUG
assert(dest != NULL);
assert(src != NULL);
//可以写为if
if (dest != NULL)
return;
if (src != NULL)
return;
* 关于const 介绍总结
//通过指针改变一个变量的值
int num = 10;
int *p = #
*p = 20;
//给变量加上const
const int num = 10; //num收到const修饰,被保护
const int *p = # //&num的类型相当于const int *
*p = 20; //改变num值,会出现warning
(1)const 放在 \* 左边
int const *p = #
const int *p = # //等价
const修饰的是 \*p ,指针变量可以被改变,但是指针指向的内容不可以通过指针来修改。
(2)const 放在 \* 右边
int * const p = #
const修饰的是 p , 指针变量本身不能改变,但是指针指向的内容可以通过指针来改变。
### 实现strlen
* 通过库函数实现
#include <string.h>
int main()
{
char *p = “abcdef”;
int len = strlen§;
printf(“%d\n”, len);
system(“pause”);
return 0;
}
* 自己写函数实现
#include <assert.h>
int my_strlen(const char *src) //*src 不能被改变
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
8159)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!