![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
C语言基础
小猪媛不圆
这个作者很懒,什么都没留下…
展开
-
程序环境和预处理
程序的翻译环境和执行环境翻译环境:源代码被转换为可执行的机器命令。执行环境:用于实际执行代码。组成一个程序的每个源文件通过编译过程分别转换成目标代码(object code)。 每个目标文件由链接器(linker)捆绑在一起,形成一个单一而完整的可执行程序。 链接器同时也会引入标准C函数库中任何被该程序所用到的函数,而且它可以搜索程序员个人的程序库, 将其需要的函数也链接到程序中。预处理 选项 gcc -E test.c -o test.i 预处理完成之后就停下来,预处理之后产生的结果都放在t.原创 2020-07-11 19:57:07 · 127 阅读 · 0 评论 -
C语言文件操作
文件的定义文件名文件类型文件缓冲区文件指针文件的打开和关闭文件的顺序读写文件的随机读写文件结束的判定文件的定义磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件(包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀 为.exe)。)、数据文件(文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内 容的文件)。文件名文件名包含3部分:文件路径+文件名主干原创 2020-07-09 15:54:28 · 110 阅读 · 0 评论 -
动态内存管理
为什么要存在动态内存分配动态内存函数介绍malloccallocrealloc柔性数组为什么要进行动态内存分配在栈上开辟的空间,大小是固定的。如果需要的内存过多,则会出现内存不够用的情况,如果需要的过少,则会出现内存浪费的情况。基于在栈上开辟空间的局限性,有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足,这时候就只能试试动态存开辟。动态内存开辟的函数动态内存开辟的函数一共有三个,分别是:malloc、calloc、realloc,这三个原创 2020-07-08 18:28:34 · 87 阅读 · 0 评论 -
自定义类型:结构体、枚举、联合
结构体结构:结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。结构体的声明:struct Stu { char name[20];//名字 int age;//年龄 char sex[5];//性别 char id[20];//学号 };//分号不能丢不完全声明:struct后面没有Stu这样的字样。结构体的自引用:struct Node { int data; struct Node* next;原创 2020-06-22 18:37:17 · 87 阅读 · 0 评论 -
字符串+内存函数
1、模拟实现strcpy#include<stdio.h>#include<assert.h>#include<windows.h>char *MyStrcpy(char *arr1, char *arr2){ assert(NULL != *arr1); assert(NULL != *arr2); int *ret = arr1; while (*arr1++ = *arr2++) { ; } printf("%s\n", ret);原创 2020-06-14 23:22:50 · 162 阅读 · 1 评论 -
深度剖析数据在内存中存储
判断大小端问题#include<stdio.h>#include<windows.h>int main(){ int x = 1; printf("%d\n", *((char*)&x)); system("pause"); return 0;}结果输出为1,说明为小端如图所示,当输出为1时,说明其为小端,反之,则为大端。#include<stdio.h>#include<windows.h>int main(){原创 2020-05-27 23:40:12 · 295 阅读 · 0 评论 -
杨辉三角、猜凶手、猜名词问题
在屏幕上打印杨辉三角。11 11 2 11 3 3 1……#include<stdio.h>#include<windows.h>#pragma warning(disable:4996)int main(){ int i, j, n = 0; int a[100][100] = { 0 }; while (n < 1 || n>100) { printf("请输入你要打印的杨辉三角行数:"); scanf("%d", &n);原创 2020-05-24 22:27:03 · 165 阅读 · 0 评论 -
C语言经典题型——喝汽水问题
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少瓶汽水。这个问题是个经典的C语言问题,用简单的程序可以实现,如下:#include<stdio.h>#include<windows.h>#define N 20int Total(int num){ int x = N; int y = N; while (y > 1) { x += y / 2; y = y / 2 + y % 2; } return x;}int main(原创 2020-05-14 21:06:15 · 963 阅读 · 0 评论 -
C语言实现扫雷游戏详解!
扫雷游戏@TOC这里写目录标题扫雷游戏@[TOC](这里写自定义目录标题)test.hmain.cmain()Menu()test.cInitBoard()SetMine()ShowBoard()GetLei()Game()test.hmain.cmain()Menu()test.cInitBoard()SetMine()ShowBoard()GetLei()Game()又...原创 2020-04-24 16:57:08 · 591 阅读 · 0 评论 -
C语言实现三子棋小游戏详解
在说正式内容之前,首先引入一个多文件的概念,模块化编程,就是多文件编程,即把不同功能的函数封装到不同的文件中。在这个三子棋小游戏里,采用了chess.h的头文件,以及源文件main.c和chess.c,多文件的引用,使代码看起来更加有序,最重要的是便于维护。说了这么多,先看一下三子棋小游戏的头文件吧~用宏定义三行三列,便于代码的维护,比如我们想把其变成五子棋,只需要在chess.h上修改宏定义...原创 2020-04-21 14:39:59 · 469 阅读 · 0 评论 -
实现一个整形有序数组的二分查找
**二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。**以上来自百度百科,想要更详细的了解二分查找(折半查找算法)先上图再说。首先要定义一个数组,假设其有十个数,那它的下标应该为1-9,计算数组的长度,即sizeof(a)/sizeof(a[[0]),算出以后 将数组a,输入的x,以及数...原创 2020-04-16 00:14:07 · 486 阅读 · 0 评论 -
小游戏,猜1-100之间的数字!
最近看着编写了一个程序,是猜数字游戏,计算机会随机生成1-100的数字,我设置了有五次机会可以猜,如果都没有猜到就失败了,猜中就赢啦,看起来一个小游戏,实际上对我这种菜菜的入门选手来说也是有一定难度的!如下:先是搭出一个整体的框架,主函数部分主要是选择是否参加这个游戏,Menu部分是输出的部分,即游戏开始时选择的界面,Game部分就是游戏的执行部分了。要特别说明:srand函数是种一个随机数...原创 2020-04-11 00:32:35 · 2931 阅读 · 0 评论 -
函数
今天也写了函数的代码奥,其实是做一个题,写出1-100之间所有3的倍数,我可能想复杂了,本来一个简单的for循环就可以完成,结果还写了下面这么多。这个程序主要就是说先定义start和end,再手动输入这两个数字,即我们要求的范围;再利用for循环对其判断,当start<=end时,循环继续(反之,循环终止);再利用if语句判断值是否符合要求,此时调用了函数,在函数体里给出来了判断的要求;最后输出...原创 2020-04-03 23:48:37 · 103 阅读 · 0 评论 -
初学
最近简单的学了一下c的东西,结构体、指针、函数、循环、选择等等,还有怎么注释,操作符什么都都有学,就是大概的学一下C语言。收货还是蛮大的吧,虽然以前也有学过,但是没有这么系统,都是零零散散的,感觉自己花费半学期去学习C语言,还不如最近几天的用心学习。也能写一些代码了,但是只能写简单的,这是远远不够的,就像我今天写的一个,如图。乍一看这个好像没什么毛病?我是找了好久都找不到哦,还找了几个同学问了一...原创 2020-04-02 23:23:23 · 169 阅读 · 0 评论 -
IT,我来啦!
我是谁?袁媛,来自陕科大,今天开始我的第一篇博客啦!我的专业是信息与计算科学,曾经数学大类招生进来的,那个时候眼里的数学,跟编程好像没有什么关系,都是一时脑热,才会报考。近两年了,感觉当初的选择没有错,...原创 2020-03-27 00:45:14 · 141 阅读 · 0 评论