
C语言进阶
文章平均质量分 87
Zi_z
知行合一
展开
-
【C语言】程序环境和预处理操作
_FILE__//进行编译的源文件__LINE__//文件当前的行号__DATE__//文件被编译的日期__TIME__//文件被编译的时间__STDC__//如果编译器遵循ANSIC,其值为1,否则未定义这些预定义符号都是语言内置的。i原创 2022-07-20 23:40:20 · 566 阅读 · 1 评论 -
【C语言】文件操作
磁盘上的文件是文件。程序文件包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。数据文件文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。...原创 2022-07-18 22:20:55 · 531 阅读 · 0 评论 -
【C语言】动态内存管理 - malloc等函数详解
/返回类型void*指针,参数要开辟空间的字节数void*malloc(size_tsize);这个函数向内存申请一块连续可用的空间,并返回指向这块空间的起始字节的地址。如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。返回值的类型是void*,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己来决定。如果参数size为0,malloc的行为是标准是未定义的,取决于编译器。;...原创 2022-07-16 21:59:16 · 4186 阅读 · 1 评论 -
【C语言】自定义类型 - 下:枚举、联合
枚举顾名思义就是一一列举。把可能的取值一一列举。比如我们现实生活中:这里就可以使用枚举了。以上定义的 enum Day , enum Color 都是枚举类型。{ }中的内容是枚举类型的可能取值,也叫 枚举常量 。这些可能取值都是有值的,默认从0开始,一次递增1。当然在定义的时候也可以赋初值。例如:1.2 枚举的优点可以使用 #define 定义常量,为什么非要使用枚举?枚举的优点:2. 联合 (共用体)之所以称为联合体是因为:这种类型定义的变量也包含一系列的成员,但是不同于其他自定义类型原创 2022-07-14 15:54:22 · 147 阅读 · 0 评论 -
【C语言】自定义类型 - 上:结构体
C语言提供了一些内置类型,例如char,int,float,double等,但是这些类型不一定能够完全解决问题,如果要说明一种复杂对象,单单一个char,int就不足以说明了,这时C语言就提供了一种自定义类型,比如用的最多的结构体,联合体和枚举,本文就是用来详细探究自定义类型。比如说描述一个学生,学生要有姓名,年龄,性别和分数:1.1.1 特殊的声明在声明结构的时候,可以不完全的声明。比如:1.2 结构体的自引用说到自引用,就不得不提到数据结构里的链表,顾名思义,链表就是像一跟链条,把数据一个原创 2022-07-13 22:14:18 · 749 阅读 · 0 评论 -
【C语言】字符函数、字符串函数和内存函数
C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串 中或者 字符数组 中。字符串常量 适用于那些对它不做修改的字符串函数.求字符串长度字符串已经 ‘\0’ 作为结束标志,strlen函数返回的是在字符串中 ‘\0’ 前面出现的字符个数(不包含 ‘\0’ )。参数指向的字符串必须要以 ‘\0’ 结束。注意函数的返回值为size_t,是无符号的( 易错 )学会strlen函数的模拟实现目前已经接触到了三种模拟实现strlen的方法:计原创 2022-07-09 23:59:56 · 451 阅读 · 0 评论 -
指针笔试题详解
解析:1.2 小题解析:1.3 小题画图解析:解析:1.5 小题画图解析:解析:1.7 小题解析:1.8 小题画图解析:这些题目的本质就是探究数据在内存中的存储以及数据在内存中的地址间的各种操作运算,深入理解代码的前提就是对内存的布局非常清楚,看代码就知道对应的内存布局。...原创 2022-07-06 17:36:07 · 441 阅读 · 1 评论 -
深度解析指针与数组笔试题
上一篇深入探究了指针和指针类型相关的知识,而本文的目的在于解析指针和数组的各种笔试题来巩固对指针的理解以及加深对指针掌握。先来回顾下数组名的含义:1.2 字符数组注意:同一个数组,但不是sizeof了。字符串初始化和上面有什么不同呢?注意:同一个数组,但不是sizeof了。1.3 二维数组总结数组名的意义:...原创 2022-07-05 20:37:15 · 281 阅读 · 0 评论 -
深入探究指针及指针类型
本篇为指针的进阶,如果初阶指针还不太明白的伙伴们请戳:初阶指针。指针的基本概念:在指针的类型中我们知道有一种指针类型为字符指针 char* ;还可以写成下面这种形式:并不是,其实是把字符串的首元素地址a存放到指针pc里,%s只要给出字符串的起始地址,一直打印到\0之前。一道面试题:那么这两种形式的区别在哪?画图分析:在探究数组指针前,看回顾一下什么是指针数组:指针数组 - 是数组。是用来存放指针变量的数组。指针数组的作用:这种写法,其实也就模拟写成了一个二维数组,这该怎么理解?那段代码所原创 2022-07-04 20:15:15 · 685 阅读 · 0 评论 -
深度剖析数据在内存中的存储
目录1. 数据类型详细介绍1.1 类型的基本归类2. 整形在内存中的存储:原码、反码和补码3. 大小端字节序4. 浮点型在内存中的存储总结1. 数据类型详细介绍在初始里面介绍了C语言的内置类型(单位:字节):char(1),short(2),int(4),long(4/8),long long(8),float(4),double(8)注意:在规定long类型大小的时候只说明:sizeof(long) >= sizeof(int)类型的意义:使用这个类型开辟内存空间的大小(大小决定了原创 2022-05-29 23:53:23 · 393 阅读 · 4 评论