![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
C语言相关知识点和运行示例~
一颗苹果.
是谁说蓝色就等于忧伤 你看看天空和海洋~
展开
-
C中的数组名
情况1. sizeof(数组名),计算整个数组的大小,sizeof内部单独存放一个数组名,数组名表示整个数组情况2. &数组名,取出的是数组的地址。&数组名,数组名表示整个数组情况3. 除了上面两种情况之外,所有的数组名表示的都是数组首元素的地址...原创 2021-03-09 16:46:12 · 90 阅读 · 0 评论 -
C语言——文件的常见相关操作知识点总结
一、文件名在计算机上,每个文件都有一个自己的文件名。形如:“sky.jpeg”一般文件名都是分为两个部分:①sky 名字 ②.jpeg扩展名扩展名的用处:①区分文件的种类 ②高速操作系统使用哪个程序来默认打开这个文件,更准确的说,在系统上,是通过文件的“路径”作为文件的身份标识.二、路径①绝对路径形如:D:\program\ha\haha.exe②相对路径需要给出一个“参考系”,告诉我们从哪个目录出发来找这个文件如果以D:\program\ha作为参考系 此时.\.原创 2020-11-30 21:42:22 · 689 阅读 · 0 评论 -
定义宏交换整型数字的奇偶位
解决思路1.首先得拿出奇数位和偶数位2.拿出奇数位:通过&0101 0101 0101...默认为32位整数,四位二进制比特位对应一个十六进制位,所以最终得到8个5,即通过& 0x55555555的方式拿出奇数位3.拿出偶数位:通过&1010 1010 1010...默认为32位整数,四位二进制比特位对应一个十六进制位,所以最终得到8个a,即通过& 0xaaaaaaaa的方式拿出偶数位4.奇数位左移一位就到了偶数位上,偶数位右移一位就到了奇数位上5...原创 2020-11-29 17:33:16 · 139 阅读 · 0 评论 -
C语言——程序的编译和链接相关知识点总结
1.编译的过程:将.c文件转成二进制文件。C语言中,每个.c文件都视为一个“编译单元”,针对每个编译单元,编译器先把.c以及所包含的.h转换成.o(.o是一个“目标文件”,也是一个二进制的文件,但是还不能执行)2链接的过程:把.o文件最后合并到一起实际开发中,经常会把一个函数的定义和调用分散在两个不同的.c中,就会被编译到不同的.o里面,所以最后需要合并这些.o文件。链接过程除了要链接用户自己写的文件编译的.o之外,还需要链接一些库文件(标准库,第三方库),此处的库可以是动态库的方式提原创 2020-11-29 16:52:25 · 229 阅读 · 0 评论 -
C语言实现通讯录
一、通讯录要求:实现一个通讯录;通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:添加联系人信息删除指定联系人信息查找指定联系人信息修改指定联系人信息显示所有联系人信息清空所有联系人以名字排序所有联系人二、代码实现1.头文件和宏定义#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<windows.h>#include<stri原创 2020-11-27 23:56:03 · 469 阅读 · 0 评论 -
实现字符串函数和内存操作函数
明白库函数的实现过程,能帮助我们去更好的使用和理解它们。下面就对于字符串函数:strlen(),strcpy(),strcmp(),strstr(),内存函数:memcpy(),memmove(),进行实现~一、字符串函数1.求字符串的实际长度:strlen()库函数中是这样定义的:代码实现:#include<stdio.h>#include<windows.h>size_t myStrlen(const char* str){ //if原创 2020-11-24 01:52:52 · 144 阅读 · 0 评论 -
模仿qsort的功能实现一个通用的冒泡函数
一、代码示例(以升序为例)1.less回调函数的定义:在排序问题里,有升序和降序。采用回调函数,由程序框架自动决定在什么时机调用。(回调函数是函数指针的一个典型用法)如下代码表示:如果a小于b,那么返回正数如果a等于b,那么返回0如果a大于b,那么返回负数int less(int a, int b){ return a-b;}2.定义函数指针类型Cmp(typedef:给已有类型取一个别名)typedef int(*Cmp)(int, int);3.冒泡排序原创 2020-11-19 13:08:35 · 134 阅读 · 0 评论 -
关于sizeof和strlen知多少
一、sizeof()和strlen()的区别1.sizeof()是一个单目操作符,并非函数,它计算的是参数所占空间的大小即字节数(注意:字符串通常以'\0'结尾,所以在计算字符串所占空间的大小时,也要包含'\0')2.strlen()是一个函数,用于计算字符串的实际长度(计算字符串的实际长度不包含'\0',假如定义了一个字符数组 char arr[]="helloworld",‘\0’是数组的最后一个元素,虽然我们看不到,但它也是字符串的一部分,但我们实际看到的是“helloword”,所以...原创 2020-11-15 17:54:42 · 356 阅读 · 0 评论 -
整形和浮点数在内存中的存储
目录一、整形在内存中的存储补码 字节序二、浮点数在内存中的存储Float Double我们都知道,创建一个变量,系统便会自动为其在内存上开辟一块空间,空间的大小根据类型的不同而不同。那么数据在所开辟的内存空间中如何存储的呢?一、整形在内存中的存储1.原码补码反码对于整形来说:数据存放在内存中实际存放的是补码...原创 2020-11-13 21:29:19 · 317 阅读 · 0 评论 -
C语言实现扫雷游戏
一、主要思想需要创建两个地图,一个是玩家看到的地图showmap,另一个是保存雷的地图minemap(用二维数组表示) 初始化地图,showmap初始化为'*',minemap通过获取随机行号和列号确定雷的位置初始化 玩家翻开某个位置(输入行和列) 翻开之后,是雷就结束游戏;不是雷就显示出此位置周围有几个雷 把地图上所有不是雷的格子翻开,胜利二、实现代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include&原创 2020-11-08 17:29:14 · 102 阅读 · 0 评论 -
C语言实现简单的三子棋
一、主要思想创建一个3*3的棋盘(使用字符数组) 初始化棋盘(用空格填充) 打印棋盘(使其有可见的边框) 玩家落子,用x表示(检验是否越界,是否已经落子,是否赢) 电脑落子,用o表示(检验是否已经落子,是否赢) 注:电脑在有效范围内随机落子,使用当前时间戳设置随机种子即srand(time(0)) 三种情况:玩家赢,电脑赢,和棋二、代码实现#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <.原创 2020-11-08 17:05:35 · 148 阅读 · 0 评论 -
简单的猜数字游戏
功能简介玩家输入一个数字,提示高了或者低了或者猜对了主要思路首先需要一个菜单,提示我们进行操作(开始游戏或者结束游戏)自动生成一个随机数:scrand(time(0))使用当前时间作为一个随机种子;程序自动地生成一个1~100的随机数rand() % 100 + 1(关于rand详情可在cplusplus网站中查看)采用while(1)死循环,判断玩家输入的数字代码示例#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>.原创 2020-10-18 16:41:40 · 256 阅读 · 0 评论 -
二分法查找整型有序数组中具体的某个数
二分法在数组中寻找某个元素时,一般都是从头到尾进行遍历。为了提高效率,可以采用二分法,每次和中间的值做对比,缩小查找区间。解决思路定义四个变量:left所查找区间的左边 right所查找区间的右边 mid所查找区间的中间值 和我们想要查找的数toFind数学中我们可以这样表示:[left,right] mid=(left+right)/2如果toFind<mid ,那么所查找的区间更新为[left,mid)如果toFind>mid,那么所查找的区间...原创 2020-10-18 16:00:30 · 380 阅读 · 0 评论 -
打印1000~2000年之间的闰年
什么是闰年4年一润,100年不润,400年再润解决思路能被4整除不能被100整除,能被400整除代码示例#include<stdio.h>#include<windows.h>#pragma warning(diasble:4996)#define MAX 2000int main(){ printf("1000~2000年的闰年如下:\n\t"); for (int i = 1000; i <= MAX; i++){ if (i%4 =原创 2020-10-18 15:24:49 · 205 阅读 · 0 评论 -
求两个数的最大公约数
最大公约数是指两个或多个整数共有约数中最大的一个。解决方法在这里我们有两种方法去求解:①辗转相除法:两数反复取余(下次执行时用除数和余数取余),直到余数为0停止,此时的除数就为最大公约数②更相减损术:用较大的数反复减去较小的数(下次执行时用减数和差中较大的数减去较小的数),直到差为0,此时的减数就为最大公约数代码示例如果哪里看不懂,可以再参考解决方法,自己用笔比划一下①辗转相除法:#include <stdio.h>#include<wind原创 2020-10-18 14:59:22 · 357 阅读 · 1 评论