C语言学习第二周(220808-220812)小结

这篇博客详细介绍了C语言中的核心概念,包括字符串的存储与操作,如strlen和strcpy等函数的使用;结构体的定义与访问,以及typedef的应用;文件的读写模式与步骤,如fread和fwrite函数;还讲解了多文件导入的防止重复包含技巧,并介绍了预处理命令在编译过程中的作用。
摘要由CSDN通过智能技术生成

本周主要学习了C语言的以下知识点:
1.字符串
字符串在C语言中可以被当做一个常量,存储在常量区,或着用字符数组保存在堆栈中。
注意字符串常量是自带尾零的,例如 char a[32] = "hello world";这里sizeof(a)=32,  strlen(a)=11 .因为sizeof取是这个字符数组的最大元素个数,strlen取的是字符串的长度,不包含尾零。
如果这么初始化字符串: char a[] = {'a','b','c','\0'};  最后一个字符后要加尾零,除非指定了字符数组的长度,比如char a[32] = {'a','b','c'};
因为这样初始化,’c'元素后面会自动补满尾零。
字符串的操作,常用的有strcat,strlen,strcpy,strcmp等,注意这些函数的入参都只能是字符串,像memcpy函数就不局限于字符串。

2.结构体
结构体是一种自定义的,可以包含多个不同数据类型的域的数据类型,方便封装;还可以用typedef重命名该结构体。注意定义时最后要加分号结束。
结构体中域的访问,有点号和指向符号两种;例如有struct student s; struct student *p = &s; 则可以这么访问学生学号s.id 或 p->id;

3.文件
文件的操作分r:只读,w:可写,a:追加,b:二进制
读写文件分三个步骤:打开文件,读写文件,关闭文件。
若是想用二进制读写文件,可以使用fread()和fwrite();  反之可以用fscanf()和fprintf()读写;注意fwrite()可以一次性写入整个数组,但需要用循环一个一个节点写入链表。

4. 多文件导入
每个头文件都要写明不重复包含:有以下两种方法
第一种:
#pragma once
第二种:
 #ifndef  _tool_H
#define _tool_H
...
#endif
导入的时候,在自己的模块.h里面写好用到的结构体所在的头文件
然后在自己的模块.c里面包含自己模块的.h文件,这样别人在使用你的模块时,就不用再包含所用到的结构体头文件了

5. 预处理命令:gcc main.c -o main.i -E

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值