最近一周学习了一下c语言,并且写了个课设,记录一下感悟
- c语言相对java基本上是处处皆指针,对于字符串的操作,数组的操作都是完全离不开指针的
- c语言的拷贝皆为深拷贝(等号=也是深复制,而非引用传递),因为本身就没有什么复杂数据类型,当结构体包含结构体时也是通过指针的方式引用。
- 虽然数组和指针都是地址,但是有一定区别,一些函数要求获得数组的长度,因此不可以直接放入指针
- 指针如果你free以后,那么就会输出奇奇怪怪的东西
- c语言对于文件只有覆盖和追加两种写入方式,因此文件小时可以采用新建文件重写的方式
对于输入 scanf的参数,要使用指针,float等不可指定数据格式
对于输出printf的参数,不需使用指针,可以设定输出数据格式
特殊函数:
strtok(char* a, const char* b)
将a按照b划分开,第二次使用需要使用strtok(NULL,b)
注意点:①该函数会更改原字符串,在检测到b的位置置换为‘/0’结束符,这个时候直接输出a就只是输出结束符之前的内容了
②该函数会忽略开头和结尾的b ,多个b放在一起时视为一个b