
C语言
hfutrlj
这个作者很懒,什么都没留下…
展开
-
用字符串常量对字符串和数组初始化
用字符串常量对字符串和数组初始化 char *buf = "abcdefg"; char buf[32] = "abcdefg"; char buf[] = "abcdefg"; 错误示例 char *buf; buf = "abcdefg"; char buf[32] = {0}; buf = "abcdefg"; 字符串指针和数组初始化只能在第一步初始化。 字符串结束符'\0',使用printf相关的输出函数,或者字符串操作函数strlen,strcpy等函数必须要有字符串结束符,否则会失效。 .原创 2022-04-29 11:52:49 · 383 阅读 · 1 评论 -
fopen使用
FILE *fp =fopen(log_name, "a"); r 打开只读文件,该文件必须存在。 r+ 打开可读写的文件,该文件必须存在。 w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。 w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。 a 以附加的方式打开只写文件。若文件不存在,则...原创 2021-09-18 17:36:51 · 2193 阅读 · 0 评论 -
变量函数的申明和定义----extern和static
定义和申明全局变量和函数 定义在C文件中,变量定义后要初始化。申明在头文件中进行外部声明(extern),定义的C文件中也要包含申明的头文件,以便编译器检查变量的定义与申明的一致性。此时外部文件需要用到该全局变量只需要包含头文件就可以了。 模块化要点 一个模块包含一个.c文件和一个.h文件,头文件是对该模块接口的申明。 某个模块要提供给其他模块调用的函数和变量,需要在头文件中做extern关键字申明。 模块内的函数和全局变量需要在.c文件头部用static申明。 永远不要在.h文件中定义变量!原创 2021-08-28 16:16:39 · 791 阅读 · 0 评论 -
数组的地址和大小
int a[10] = {0,1,2,3,4,5,6,7,8,9}; a[0] = 0; //表示数组的第一个值 &a[0]; //表示数组第一个元素的地址 和 a等价,但是&a[0]是一个指针,编译器要为它分配存储空间,但a却不会被分配存储空间,a也不是指针型变量。 &a[0]+1 表示向后移一个int型的变量 地址为首元素地址+4 a //表示数组的i第一个元素地址 a +1 //表示向后移一个int型的变量 地址为首元素地址+4 &a //表示整...原创 2021-08-26 19:22:44 · 1520 阅读 · 0 评论 -
数组初始化的两种方式
1. 数组初始化,可以只给一部分元素赋值 int a[10] = {0,1,2,3,4}; 这样只给前面5个元素赋值,后5个元素为0; 将char p[8]看成字符数组的话,char p[8] = [0]; 表示第一个元素为0,后面7个元素也为0;所以char p[8] = {}和char p[8] = {0}一样,8个元素都初始化为0。 2.用字符串常量来初始化字符串数组 char p[10] = “china”; 前5个元素为‘c’,‘h’,‘i’,‘n’,‘a’,第六个元素为‘\0’原创 2021-07-12 20:12:13 · 3354 阅读 · 0 评论 -
fopen使用
FILE *fp =fopen(log_name, "a"); r 打开只读文件,该文件必须存在。 r+ 打开可读写的文件,该文件必须存在。 w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。 w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。 a 以附加的方式打开只写文件。若文件不存在,则...原创 2020-05-06 19:24:45 · 295 阅读 · 0 评论 -
浮点型变量使用
Float型(单精度浮点型)变量占4字节,十进制科学计数法小数点后6位有效精度和第7位的部分精度。 Double型(双精度浮点型)变量占 8 字节,十进制科学计数法小数点后15位有效精度和第16位的部分精度。 浮点数的比较不能直接用=或者!=,浮点数比较需要设定一个误差,在误差允许范围内都表示相等。 例如 double ret = 0.000001; if(var >= r...原创 2020-05-06 19:23:23 · 752 阅读 · 0 评论 -
extern使用
一个文件中的全局变量在其他文件中的使用 在一个.c文件中定义 uint_32 g_apt = 0; //定义在C文件中,不要定义在头文件中 在另外的.c文件中需要用到这个全局变量 external uint_32 g_apt; 当使用extern修饰一个变量时,代表当前变量x 的定义来自于其他文件,当进行编译时,会去其他文件里面找,在当前文件仅做声明,而不是重新定义一个新的变量...原创 2020-05-06 19:22:29 · 639 阅读 · 0 评论