
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 · 1131 阅读 · 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 · 643 阅读 · 10 评论 -
指针和数组笔试题解析
在讲解题目之前我们先来了解一些基础知识。数组名通常来说是数组首元素地址,但有两个例外:1.sizeof(数组名),这里数组名表示整个数组,计算的是整个数组的大小2.&数组名,这里数组名表示整个数组,取出整个数组的地址strlen():计算字符串str的长度,直到'\0'结束,不包含'\0'字符sizeof():计算的是对象所占内存的大小...原创 2022-04-14 22:00:41 · 345 阅读 · 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 · 575 阅读 · 13 评论 -
详解指针(2)
目录一.函数指针二.函数指针数组三.指向函数指针数组的指针一.函数指针看一段代码表明test和&test都表示函数地址。如果我们想要保存函数test的地址怎么办呢?用函数指针即可,void(*pf)()能存储函数test的地址。pf和*先结合,表面pf是一个指针,指向的是一个函数,这个函数是无参的,返回类型是void类型的。《c陷阱和缺陷》里有两段经典代码,我们来分析一下(*(void (*)())0)();void(*)()是强制类型转换,把原创 2022-04-12 11:43:04 · 657 阅读 · 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 · 2610 阅读 · 0 评论 -
详解指针(1)
一.字符指针我们先了解一下指针的概念1.指针就是一个变量,用来存放地址,地址唯一标识一块内存空间。2.指针的大小是固定的,32位平台是4个字节,64位平台是8个字节。3.指针是有类型的,指针的类型决定了指针的+-整数的步长,也决定了指针解引用操作的访问权限。4.指针的运算(指针+-整数,指针-指针,指针的关系运算)字符指针的类型位char*。① int main() ...原创 2022-04-11 16:34:08 · 209 阅读 · 1 评论 -
字符函数和字符串函数进阶篇(下)
💡重点字符串查找函数strtok错误信息报告函数strerror字符操作函数字符分类函数字符转换函数内存操作函数memcpymemmovememsetmemcmp1.字符串查找函数 →strtok函数char * strtok ( char * str, const char * sep );sep:是一个字符串,定义了用作分隔符的字符集合str:指...原创 2022-03-24 09:50:40 · 347 阅读 · 0 评论 -
三子棋小游戏
首先创建game.c文件用来存放一些函数的声明和头文件,创建一个test.c文件写实现游戏的逻辑框架和主函数,最后创建game.c文件具体些游戏实现步骤。话不多说,先玩一把吧。 这是game.h文件test.c文件下面是game.c文件中实现游戏的各个步骤初始化棋盘打印棋盘玩家下棋和电脑下棋判断输赢...原创 2022-01-24 01:11:14 · 2744 阅读 · 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 · 589 阅读 · 0 评论 -
简单介绍一下qsort函数
回调函数回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。qsort函数qsort是一个函数,基于快速排序算法实现的一个排序函数。这是MSDN上面的介绍:void qsort(void* base, //待排序数据的起始位置 s..原创 2022-03-15 12:15:35 · 9875 阅读 · 0 评论 -
字符函数和字符串函数进阶篇(上)
一、求字符串长度1.strlensize_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 · 127 阅读 · 1 评论