![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言
世界的尽头..
这个作者很懒,什么都没留下…
展开
-
文件操作
文件操作1、IO流什么是文件程序文件数据文件文件名文件类型文件的打开关闭文件的随机读写文件缓冲区1、IO流什么是IO流呢?简单地说就是文件的输入和输出I :Input;O :Output;通过IO可以完成硬盘文件的读和写。什么是文件磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件程序文件包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。数据文件文件的内容不一定是程原创 2020-11-27 13:04:19 · 129 阅读 · 3 评论 -
结构体、位段、枚举、联合
目录结构体1、结构体的基础知识2、结构体变量的定义和初始化3、结构体成员的访问4、结构体传参位段1、什么是位段3、位段的应用3、总结枚举1、什么是枚举2、枚举类型的定义3、枚举的优点联合(共用体)1、联合类型的定义2、联合的特点面试题3、联合大小的计算结构体1、结构体的基础知识结构体是一些集合,这些值称为成员变量,结构体的每个成员都可以是不同类型的变量。2、结构体变量的定义和初始化struct point { int x; int y;}p1; //声明类型的童定义了变量p1;str原创 2020-11-22 20:17:30 · 145 阅读 · 2 评论 -
结构体内存对齐
结构体内存对齐规则第一个成员在与结构体变量偏移量为0的地址处。其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。对齐数 = 编译器默认的一个对齐数 与 该成员大小的较小值。VS中默认的值为8结构体总大小为最大对齐数(每个成员变量都有一个对齐数)的整数倍。如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。接下来我们用几个例子来计算一下结构体的大小吧代码一struct ps { char s1原创 2020-11-21 21:56:32 · 164 阅读 · 1 评论 -
打印整数二进制序列中的偶数位和奇数位
目录算法思路逆序打印将num右移位与1按位与将1左移和num按位与顺序打印算法思路提取所有的奇数位,如果该位是1,输出1,是0则输出0以同样的方式提取偶数位置这里需要检测数中位数的值是否是1,可以通过按位与操作进行比较:①结果是0,则第i个比特位是0②结果是非0,则第i个比特位是1逆序打印将num右移位与1按位与void print(int num){ for (int i = 0; i <= 30; i+=2){ printf("%d ", (num >原创 2020-11-16 23:07:45 · 297 阅读 · 2 评论 -
指针进阶的笔试题(32位系统)
一、一维数组int a[] = { 1, 2, 3, 4 }; printf("%d\n", sizeof(a));//16 ;数组四个元素 printf("%d\n", sizeof(a + 0));//4 隐式转化为指针,sizeof(int*) printf("%d\n", sizeof(*a)); // 4 sizeof(a[0])对a解引用 a隐式转为指针再解引用 printf("%d\n", sizeof(a + 1));//4 sizeof(int *) printf("%d\原创 2020-11-15 22:33:29 · 294 阅读 · 3 评论 -
数据在内存中的存储
目录一、整数在内存中的存储(32位系统)字节序(32位系统)1、小端字节序2、大端字节序二、判断当前主机是大端字节序还是小端?(32位系统)三、原码、反码、补码(32位系统)一、整数在内存中的存储(32位系统)在vs中我们通过调试器就可以看到内存中的详细情况进入调试阶段调试 -->窗口—>内存四个内存是四个窗口,内存1,2,3,4,都可以进入现在我们就可以看到a的地址 0x00AFFEECint型在内存中是以4个字节为单位存储的,内存中用16进制表示,就可以看到a的值原创 2020-11-11 21:36:28 · 1762 阅读 · 7 评论 -
数列求和,Sn = a + aa + aaa +……+;
目录1、题目要求2、解题思路3、 代码实现4、运行结果1、题目要求求Sn=a+aa+aaa+aaaa+aaaaa的前n项之和,其中a是一个数字,例如:当 a = 2时,n = 5;时 计算—>2 + 22 + 222 + 2222 + 22222的值。2、解题思路利用循环 来解决 n的次数问题,每一次循环使打印的结果进行求和。定义一个整形 bill 变量来表示位数,每一次循环bill * 10,这样每一次循环进行求和,得出结果。3、 代码实现int main(){ print原创 2020-11-10 11:04:34 · 3473 阅读 · 4 评论 -
实现打印一个整数的每一位
文章目录1、递归方式打印算法思路代码实现运行结果2、非递归方式打印算法思路程序的实现运行结果1、递归方式打印算法思路我们用求余的方式丢弃整数的最高位,用除法的操作打印需要输出的每一位个数。利用递归的原理进行打印。代码实现void func(int n){ if (n > 9){ func(n / 10); } printf("%d\n",n%10);}int main(){ int n = 1234; func(n); return 0;}运行结果1原创 2020-11-04 22:39:37 · 1641 阅读 · 11 评论 -
c语言井字棋(三子棋)简易版~~~~~~
文章目录1 井字棋游戏说明;2、编程逻辑;3、完整的代码表述1 井字棋游戏说明;游戏的棋盘为3*3 的九宫格模式,( 玩家 vs 电脑 )只要玩家(电脑)的某个方向的棋子连成一条线,就是玩家(电脑)或获胜。‘1’表示玩家、‘2’表示电脑。此时就算是玩家胜利2、编程逻辑;创建菜单玩家进行选择‘0’表示开始游戏,‘1‘表示退出游戏、此处我们需要进行判断玩家输入是否有误,输入的值必须是0或者1,其他错误输入需要进行提示,重新输入,int menu(){ printf("======原创 2020-11-02 21:12:04 · 1853 阅读 · 4 评论 -
冒泡排序以及其原理
文章目录1、冒泡排序的原理;2、每一轮比较代码实现;3、完整代码实现;1、冒泡排序的原理;在了解冒泡排序原理之前我们先引入例子:将数组int arr[]={54,63,25,15,2}按数组的元素进行升序或者降序原理:是将前后数组内的两个元素进行比较(我们这个例子进行升序排序,降序排序原理相同),大的元素位置往后调整,后面元素依次执行。我们来看一下实现过程:54 , 63, 25, 15 , 2 >>进行第一次排序:54 和 63 比较 54<原创 2020-10-30 21:06:39 · 8192 阅读 · 4 评论 -
c语言函数传值和传址
什么是函数?函数是一个可以重复使用的功能代码块,一个封闭的(空间),它可以在代码里随意调用。利用函数的封装可以减少重复代码的开发,提高代码的利用率,让代码更简洁,更容易理解。我们还可以还可以把函数理解成一个工厂,函数的参数就相当于工厂里的原材料,函数内部的代码(函数体)相当于工厂的生产线生产出手机,函数参数进行加工得出的结果再用return 返回,返回值就是生产出来的手机。我们来编写一个实现两数求和的函数:int add(int a, int b){ return a + b;}int m原创 2020-10-27 16:40:08 · 686 阅读 · 3 评论 -
指针、指针变量、解引用
指针是什么== -指针就是地址 ==我们都知道计算机的内存。计算机中所有程序的运行都是在内存中进行的。所以为了有效的使用内存,就把内存划分成一个个小的内存单元,为了更好的访问内存单元,就给内存单元进行了编号,这里 “编号” 就称为 地址指针变量...原创 2020-10-26 22:49:40 · 817 阅读 · 5 评论 -
c语言rand()、srand()函数
1、rand()生成随机数:rand():产生一个随机数,返回介于0和之间的伪随机整数RAND_MAX(32767).rand() 函数虽然可以产生一个随机数,但这不是真正意义的随机数,是一个伪随机数,所谓的“伪随机数”指的并不是假的随机数,是通过一定的算法得到一种假想状态的随机数,计算机只能生成相对的随机数,而这些随机数既是随机的又是有规律的,一部分遵守一定规律,一部分则不遵守任何规律rand()函数在使用的时候需调用srand(seed)函数,也就是提供一个种子,使用如果没用调用sra原创 2020-10-21 16:47:03 · 882 阅读 · 2 评论 -
c语言static关键字参数
1,static 修饰变量.① 静态的局部变量;延长了局部变量的生命周期,static变量只被初始化一次,下一次被调用会由依据这一次的结果值,②修饰全局变量;c语言的项目是由多个源文件组成,而每一个源文件`...原创 2020-10-20 13:21:04 · 1395 阅读 · 10 评论 -
c语言扫雷简化版小游戏
文章目录1扫雷游戏说明:2、编程逻辑3整体的代码实现1扫雷游戏说明:9*9方格中有10个地雷,用户翻看一个方格,如果是地雷,游戏结束,翻看不是地雷,则显示周围地雷的个数。知道10个地雷全部被找到。2、编程逻辑1、创建地图并且初始化、我们需要创建两个地图,一个地图展示用户输入,另一个地图电脑内置有地雷的地图,void init(char showmap[MAX_ROW][MAX_COL], char minemap[MAX_ROW][MAX_COL]){ //对showmap进行初始化原创 2020-11-02 22:04:41 · 1133 阅读 · 8 评论