当前位置: 首页 > wzjs >正文

诸城哪有做公司网站的影视广告设计制作

诸城哪有做公司网站的,影视广告设计制作,百度手机导航官方新版,新乡网络网站建设目录 十二、内存管理 十三、文件操作 十四、预处理 十二、内存管理 188. (malloc函数)用于(动态分配内存), malloc 函数在(堆)上动态分配内存,接受⼀个参 数,表示需要…

目录

十二、内存管理

十三、文件操作

十四、预处理


十二、内存管理

188. (malloc函数)用于(动态分配内存), malloc 函数在(堆)上动态分配内存,接受⼀个参 数,表示需要分配的内存大小(以字节为单位)。

189. malloc 函数返回(分配的内存块的指针),如果内存分配成功, malloc 函数返回⼀个指向分配的内存块的指针。

190. malloc 函数返回(NULL)表示(内存分配失败),内存分配失败可能是因为(系统内存不 足)。

191. calloc 函数)用于(分配并初始化内存), calloc 函数在(堆)上分配内存,并将分配的内存块(初始化为0),接受两个参数,第⼀个参数表示需要分配的元素个数,第二个参数表示每个元素的大小(以字节为单位)。

192. calloc 函数将(分配的内存块数据设置为0),这意味着分配的内存块中的每个字节都被设置 为0。

193. malloc 函数返回(void*类型)的指针,需要(强制类型转换)为所需的类型。

194. realloc 函数用于(改变已分配内存块的大小),可以扩大或缩小内存块。

195. free 函数用于(释放动态分配的内存),释放内存后,指针应该设置为(NULL),以避免 (悬挂指针)。

196. 内存泄漏是指(分配的内存没有被释放),长时间运行的程序中的内存泄漏会导致(系统资源耗尽)。

197. 悬挂指针是指(指向已释放内存的指针),访问悬挂指针会导致(未定义行为)。


十三、文件操作

198. (文件):存储在外部存储介质(如硬盘、U盘)上的数据的集合。(文件是数据持久化存储的主要方式。)

199. (文件的类型):

🤞 文本文件:以ASCII码形式存储,可直接用文本编辑器打开查看。(例如:.txt、.c、.h文件。)

二进制文件:以二进制形式存储,不能直接用文本编辑器打开,需要特定的程序才能解析。(例如:.exe、.jpg、.mp3文件。)

200. (文件指针):指向文件结构体(FILE)的指针,用于操作文件。(文件指针是文件操作的核心。)

201. (FILE类型):C语言标准库中定义的结构体类型,包含了文件操作所需的信息。(FILE结构体定义在stdio.h头文件中。)

202. (fopen函数):用于打开文件,返回文件指针。(函数原型: FILE *fopen(const char *filename, const char *mode); )

🤞 filename :要打开的文件名(包含路径)。

mode :打开模式,指定文件的打开方式。(例如:"r", "w", "a", "rb", "wb", "ab", "r+",

"w+", "a+"。)

203. (fopen函数的返回值):

🤞 成功打开文件,返回指向该文件的文件指针。

打开文件失败,返回NULL。(需要判断fopen函数的返回值是否为NULL,以确定文件是

否成功打开。)

204. (fopen函数的打开模式):

🤞 "r"(只读):只能从文件中读取数据,文件必须存在。

"w"(只写):只能向文件中写入数据,如果文件存在则覆盖,不存在则创建。

"a"(追加):只能向文件中追加数据,如果文件不存在则创建。

"rb"(只读二进制):以二进制模式打开文件,只能从文件中读取数据,文件必须存在。

"wb"(只写⼆进制):以二进制模式打开文件,只能向文件中写入数据,如果文件存在

则覆盖,不存在则创建。

"ab"(追加二进制):以二进制模式打开文件,只能向文件中追加数据,如果文件不存

在则创建。

"r+"(读写):可以从文件中读取数据,也可以向文件中写入数据,文件必须存在。

"w+"(读写):可以从文件中读取数据,也可以向文件中写入数据,如果文件存在则覆

盖,不存在则创建。

"a+"(读写):可以从文件中读取数据,也可以向文件中追加数据,如果文件不存在则

创建。

205. (fclose函数):用于关闭文件,释放文件资源。(函数原型: int fclose(FILE *fp); )

🤞 fp :要关闭的文件指针。

206. (fclose函数的返回值):

🤞 成功关闭文件,返回0。

关闭文件失败,返回EOF(-1)。(需要判断fclose函数的返回值是否为0,以确定文件是否成功关闭。)

207. (fprintf函数):用于向文件中写入格式化数据。(函数原型: int fprintf(FILE *fp, const char *format, ...); )

🤞 fp :要写入的文件指针。

format :格式化字符串,类似于printf函数的格式化字符串。

... :要写入的数据。

208. (fscanf函数):用于从文件中读取格式化数据。(函数原型: int fscanf(FILE *fp, const char *format, ...); )

🤞 fp :要读取的文件指针。

format :格式化字符串,类似于scanf函数的格式化字符串。

... :用于存储读取数据的变量的地址。

209. (fputc函数):用于向文件中写入⼀个字符。(函数原型: int fputc(int char, FILE *fp); )

🤞 char :要写入的字符。

fp :要写入的文件指针。

210. (fgetc函数):用于从文件中读取⼀个字符。(函数原型: int fgetc(FILE *fp);

🤞 fp :要读取的文件指针。

211. (fputs函数):用于向文件中写入⼀个字符串。(函数原型: int fputs(const char *str, FILE *fp); )

🤞 str :要写入的字符串。

fp :要写入的文件指针。

212. (fgets函数):用于从文件中读取一行字符串。(函数原型: char *fgets(char *str, int n, FILE *fp); )

🤞 str :用于存储读取的字符串的字符数组。

n :最多读取的字符数(包括'\0')。

fp :要读取的文件指针。

213. (fread函数):用于从文件中读取指定字节数的数据。(函数原型: size_t fread(void *ptr, size_t size, size_t count, FILE *fp); )

🤞 ptr :用于存储读取数据的内存空间的地址。

size :每个数据项的大小(以字节为单位)。

count :要读取的数据项的个数。

fp :要读取的文件指针。

214. (fwrite函数):用于向文件中写入指定字节数的数据。(函数原型: size_t fwrite(const void *ptr, size_t size, size_t count, FILE *fp); )

🤞 ptr :要写入的数据的内存空间的地址。

size :每个数据项的大小(以字节为单位)。

count :要写入的数据项的个数。

fp :要写入的文件指针。

215. (fseek函数):用于改变文件的读写位置。(函数原型: int fseek(FILE *fp, long offset, int origin); )

🤞 fp :要操作的文件指针。

offset :偏移量(以字节为单位)。

origin :起始位置。(SEEK_SET:文件开头,SEEK_CUR:当前位置,SEEK_END:

文件末尾。)

216. (ftell函数):用于获取文件的当前读写位置。(函数原型: long ftell(FILE *fp);

🤞 fp :要操作的文件指针。

217. (rewind函数):用于将文件的读写位置移动到文件开头。(函数原型: void rewind(FILE *fp); )

🤞 fp :要操作的文件指针。

218. (feof函数):用于判断文件是否结束。(函数原型: int feof(FILE *fp);

🤞 fp :要判断的文件指针。

返回值:如果文件结束,返回非零值,否则返回0。

219. (ferror函数):用于判断文件是否发生错误。(函数原型: int ferror(FILE *fp);

🤞 fp :要判断的文件指针。

返回值:如果文件发生错误,返回非零值,否则返回0。

220. (perror函数):用于输出错误信息。(函数原型: void perror(const char *s);

🤞 s :要输出的错误信息的前缀。

221. (remove函数):用于删除文件。(函数原型: int remove(const char *filename); )

🤞 filename :要删除的文件名(包含路径)。

222. (rename函数):用于重命名文件。(函数原型: int rename(const char *oldname, const char *newname); )

🤞 oldname :旧的文件名(包含路径)。

newname :新的文件名(包含路径)。

(文本文件读写示例):

#include <stdio.h>
#include <stdlib.h>
int main() 
{FILE *fp;char str[100];// 打开⽂件fp = fopen("test.txt", "w+");if (fp == NULL) {perror("Error opening file");return 1;}// 写⼊字符串fprintf(fp, "This is a test string.\n");fputs("Another line of text.\n", fp);// 移动到⽂件开头rewind(fp);// 读取字符串while (fgets(str, sizeof(str), fp) != NULL) {printf("%s", str);}// 关闭⽂件fclose(fp);return 0;
}

(二进制文件读写示例):

#include <stdio.h>
#include <stdlib.h>
int main() 
{FILE *fp;int data[5] = {1, 2, 3, 4, 5};int read_data[5];// 打开⽂件fp = fopen("data.bin", "wb+");if (fp == NULL) {perror("Error opening file");return 1;}// 写⼊数据fwrite(data, sizeof(int), 5, fp);// 移动到⽂件开头rewind(fp);// 读取数据fread(read_data, sizeof(int), 5, fp);// 输出数据for (int i = 0; i < 5; i++) {printf("%d ", read_data[i]);}printf("\n");// 关闭⽂件fclose(fp);return 0;
}

223. (文件操作的注意事项):

🤞 打开文件后⼀定要关闭文件,释放文件资源。

打开文件时要检查fopen函数的返回值,确保文件成功打开。

读取文件时要检查feof函数和ferror函数的返回值,确保文件没有结束或发生错误。

写入文件时要检查ferror函数的返回值,确保文件没有发生错误。

使用fopen函数打开文件时,要根据实际需求选择合适的打开模式。

文件路径要正确,可以使用绝对路径或相对路径。

文件操作可能会发生错误,要做好错误处理。

224. (文件操作的错误处理):

🤞 使用perror函数输出错误信息。

使用exit函数终止程序运行。

在程序中添加错误处理代码,例如:

FILE *fp = fopen("test.txt", "r");
if (fp == NULL) 
{perror("Error opening file");exit(1);
}

225. (文件操作的总结):

🤞

文件操作是C语言程序设计的重要组成部分。

掌握文件操作的相关函数和注意事项,可以编写出能够持久化存储数据的程序。

文件操作可能会发生错误,要做好错误处理。


十四、预处理

226. 对象宏用于定义(常量),对象宏只是简单的(文本替换),在编译之前进行。

227. #undef 用于(取消宏定义),如果需要取消之前定义的宏,可以使用 #undef 指令。这可以 避免宏名冲突或在特定代码段禁用宏。

228. 条件编译指令包括( #ifdef #ifndef #else #endif ),这些指令允许根据(条件)选择性地编译代码,常用于处理平台差异、调试开关等。

229. #ifdef 用于(判断宏是否已定义),如果指定的宏已经定义,则编译 #ifdef #else 之间的代码;否则,编译 #else #endif 之间的代码。

230. #ifndef 用于(判断宏是否未定义),如果指定的宏尚未定义,则编译 #ifndef 和 #else 之间的代码;否则,编译 #else #endif 之间的代码。

231. #else 用于(提供备选代码块), #else 指令必须与 #ifdef #ifndef 指令配对使用,用于在条件不满足时编译另⼀段代码。

232. #endif 用于(结束条件编译块),每个 #ifdef #ifndef #if 指令都必须以#endif 指令结束。

233. #if 指令允许使用(常量表达式)进行条件编译,只有当常量表达式的值为非零时,才编译 #if 和 #else 之间的代码。

234. #elif 指令是 #else #if 的组合,允许在多个条件之间进行选择,提供(多个备选代码块)。

235. #line 指令用于(改变行号和文件名),这主要用于(调试)目的,可以使编译器报告的错误 信息指向不同的位置。

236. #error 指令用于(生成编译错误),当编译器遇到 #error 指令时,会产生⼀个错误信息并终止编译,常用于(检查编译时错误)。

http://www.dtcms.com/wzjs/563545.html

相关文章:

  • 南京快速建设企业网站最新新闻热点事件摘抄11月
  • 做seo网站优化价格WordPress给编辑器
  • 柳州集团学校网站建设dw做的网站怎样做成手机版的
  • 邯郸装修网站建设郑州网站建设 .cc
  • 网站栏目划分的原则设计师的素材网站
  • 免备案空间网站高端网站制作公
  • 大连微网站制作网站建设排行榜
  • 四川建设厅官方网站链接搜索
  • Linux主机设置网站首页13572074638网站建设
  • 中国建设注册管理中心网站首页网站建设价格西安
  • 网站做支付端口的费用网红营销定义
  • 做初中题赚钱的网站怎么计算网站开发费用
  • 邢台做网站服务想调用等三方网站数据该怎么做
  • 网站开发数据库技术优秀营销案例分享
  • 可以做系统同步时间的网站设计制作散发寄递销售展示使用
  • 东昌网站建设北票市建设工程安全管理站网站
  • 建设网站基础电子烟网站设计
  • 建设网站费用计入什么费用微信对接网站可以做301跳转吗
  • 丽江建设工程信息网站国家高新技术企业证书图片
  • 北京市建设公租房网站局域网做网站 内网穿透
  • 团队网站建设哪家便宜许昌小学网站建设
  • 杭州网站开发平均工资广州天河区做网站的公司
  • 山东济南做网站公司管理咨询公司需要的能力
  • 邯郸网站制wordpress qq 群
  • 网站升级维护期间能访问吗wordpress 嵌入地图
  • 北京有哪些炫酷的网站页面论述三种常见的网络营销方式
  • discuz网站名称注册公司最少需要多少钱
  • wordpress角色权限管理seo优化知识总结
  • 福州市建网站公司软文推广名词解释
  • 公司网站页面设计项目建设综述