c语言
文章平均质量分 72
繁华的梦境
热爱编程
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
预处理详解
1.预定义符号 __FILE__ //进行编译的源文件 __LINE__ //当前文件的行号 __DATE__ //文件被编译的日期(格式"mm dd yyyy") __TIME__ //文件被编译的时间 (格式"hh : mm : ss") __STDC__ //如果编译器符合C标准(C89或C99),那么值为1 示例: 2.宏定义 简单的宏: 格式:#define 标识符 替换列表 示例: ...原创 2022-04-20 16:13:01 · 1218 阅读 · 5 评论 -
指针笔试题讲解
笔试题1: int main() { int a[5] = { 1, 2, 3, 4, 5 }; int* ptr = (int*)(&a + 1); printf("%d,%d", *(a + 1), *(ptr - 1)); return 0; } &a取出的是整个数组的地址,+1跳过整个数组,然后强转为int*类型,把数组指针强转为了整形指针,表明ptr一次只能访问一个整数,*(a+1)中的a是数组首元素地址,+1解引用访问数组第二个元素,*...原创 2022-04-18 19:23:12 · 711 阅读 · 10 评论 -
指针和数组笔试题解析
在讲解题目之前我们先来了解一些基础知识。 数组名通常来说是数组首元素地址,但有两个例外: 1.sizeof(数组名),这里数组名表示整个数组,计算的是整个数组的大小 2.&数组名,这里数组名表示整个数组,取出整个数组的地址 strlen():计算字符串str的长度,直到'\0'结束,不包含'\0'字符 sizeof():计算的是对象所占内存的大小 ...原创 2022-04-14 22:00:41 · 394 阅读 · 16 评论 -
深入理解结构体
一.结构体 1.结构体类型的声明 结构体是一些值得集合,这些值被称为成员变量,结构体的每一个成员可以是不同类型的变量。 声明: struct tag { member - list; }variable-list; 那么描述一个学生该怎么描述呢? struct Stu { char name[20];//名字 int age;//年龄 char sex[5];//性别 char id[20];//学号 }; //分号不能丢 声明结构体的时候,还...原创 2022-04-13 19:34:12 · 670 阅读 · 12 评论 -
详解指针(2)
目录 一.函数指针 二.函数指针数组 三.指向函数指针数组的指针 一.函数指针 看一段代码 表明test和&test都表示函数地址。 如果我们想要保存函数test的地址怎么办呢?用函数指针即可,void(*pf)()能存储函数test的地址。pf和*先结合,表面pf是一个指针,指向的是一个函数,这个函数是无参的,返回类型是void类型的。 《c陷阱和缺陷》里有两段经典代码,我们来分析一下 (*(void (*)())0)(); void(*)()是强制类型转换,把原创 2022-04-12 11:43:04 · 733 阅读 · 13 评论 -
C语言实现通讯录
contact.h #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<assert.h> #include<stdlib.h> enum option { EXIT, //0 ADD, //1 DEL, //2 SEARCH, //3 MODIFY, ...原创 2022-04-11 17:01:31 · 2646 阅读 · 0 评论 -
详解指针(1)
一.字符指针 我们先了解一下指针的概念 1.指针就是一个变量,用来存放地址,地址唯一标识一块内存空间。 2.指针的大小是固定的,32位平台是4个字节,64位平台是8个字节。 3.指针是有类型的,指针的类型决定了指针的+-整数的步长,也决定了指针解引用操作的访问权限。 4.指针的运算(指针+-整数,指针-指针,指针的关系运算) 字符指针的类型位char*。 ① int main() ...原创 2022-04-11 16:34:08 · 309 阅读 · 1 评论 -
字符函数和字符串函数进阶篇(下)
💡重点 字符串查找函数 strtok 错误信息报告函数 strerror 字符操作函数 字符分类函数 字符转换函数 内存操作函数 memcpy memmove memset memcmp 1.字符串查找函数 →strtok函数 char * strtok ( char * str, const char * sep ); sep:是一个字符串,定义了用作分隔符的字符集合 str:指...原创 2022-03-24 09:50:40 · 394 阅读 · 0 评论 -
三子棋小游戏
首先创建game.c文件用来存放一些函数的声明和头文件,创建一个test.c文件写实现游戏的逻辑框架和主函数,最后创建game.c文件具体些游戏实现步骤。 话不多说,先玩一把吧。 这是game.h文件 test.c文件 下面是game.c文件中实现游戏的各个步骤 初始化棋盘 打印棋盘 玩家下棋和电脑下棋 判断输赢 ...原创 2022-01-24 01:11:14 · 2802 阅读 · 1 评论 -
浮点型在内存中的存储
常见的浮点数有:3.141592,1E-4等等。 float,double,long double都是浮点数类型,它们表示的范围的如下: 浮点数的存储规则 根据美国IEEE754标准,任意一个二进制浮点数x都可以表示成下面的形式 (-1)^s* M*2^E (-1)^s表示符号位,s=0,x为正数,s=1,x为负数 M表示有效数字,M大于等于1,小于2 2^ E表示指数位 十进制的5.0,写成二进制是101.0 ,相当于 1.01*2^2。可得s=0,M=1.01,E=2 十进制原创 2022-03-16 21:43:48 · 689 阅读 · 0 评论 -
简单介绍一下qsort函数
回调函数 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个 函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数 的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进 行响应。 qsort函数 qsort是一个函数,基于快速排序算法实现的一个排序函数。 这是MSDN上面的介绍: void qsort(void* base, //待排序数据的起始位置 s..原创 2022-03-15 12:15:35 · 9986 阅读 · 0 评论 -
字符函数和字符串函数进阶篇(上)
一、求字符串长度 1.strlen size_t strlen ( const char * str ); 1.字符串以'\0'作为结束标志,strlen会返回'\0'字符之前出现的字符的个数,不包括'\0'。 2.指向的字符串必须要以'\0'结束。 3.strlen返回值是size_t,是无符号的(注意) 举个易错例子 因为strlen(str2)和strlen(str1)返回类型都是size_t的,那么两个无符号数相减得到的结果也是无符号类型的,-3被当成无符号整数将会是一个很大的原创 2022-04-05 15:59:23 · 175 阅读 · 1 评论
分享