C语言程序设计
C语言程序设计
凌桓丶
现腾讯边缘存储研发工程师,前字节跳动流式计算研发工程师、CSDN博客专家。
展开
-
C语言程序设计 | 通讯录管理系统
通讯录可以用来存储个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址。而一个通讯录的管理系统,应该至少具备增、删、查、改等几项功能,并要对其进行拓展。所以我们要实现的功能如下:添加联系人信息删除指定联系人信息查找指定联系人信息修改指定联系人信息显示所有联系人信息清空所有联系人对联系人进行排序通讯录应该是可扩容而非定长的通讯录的数据应该存储在文件当中,以便多次使用明...原创 2019-12-01 22:49:52 · 13824 阅读 · 9 评论 -
C语言程序设计 | 整型、浮点型在内存中的存储方式
整形在内存中的存储一个变量的创建要在内存中开辟空间,空间的大小是根据不同的类型决定的。那数据在数据在所开辟的空间中是如何存储的呢?首先我们要了解三个概念:原码 反码 补码计算机中的有符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示正,用1表示负,而数值为的三种表示方法各不同。原码:直接将二进制按照正负数的形式翻译成二进制就可以。...原创 2019-10-25 13:44:59 · 691 阅读 · 0 评论 -
C语言程序设计 | 打印一个n行的菱形
打印一个n原创 2019-09-23 17:28:25 · 13171 阅读 · 0 评论 -
C语言程序设计 | 猜数字游戏
游戏内容:随机生成一个1~100的数字,让玩家猜测,当玩家猜错的时候提示是大了还是小了。首先我们先对内容进行分析。1.我们需要随机生成一个范围在1-100的数据供玩家猜测于是我们可以想到用rand()函数来实习ret = rand() % 100 +1;但是如果多次实验,会发现每次给的随机数在重新运行程序后都是一样的,这样的随机是重复的,达不到游玩的效果,所以我们需要引入一个srand(...原创 2019-09-24 21:02:38 · 4695 阅读 · 0 评论 -
C语言程序设计 | 指针(二):常量指针和指针常量、数组参数和指针参数、函数指针数组
指针的进阶(二)目录:常量指针和指针常量数组参数和指针参数函数指针数组常量指针和指针常量在我们日常中,经常会用到一个关键字constconst是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。合理的运用const可以大幅度的提高代码的安全性和可读性。但是在指针中,c...原创 2019-11-10 20:42:24 · 1078 阅读 · 0 评论 -
C语言程序设计 | 指针的进阶(一):字符指针、数组指针、指针数组、函数指针
指针的进阶(一)目录:字符指针数组指针和指针数组函数指针字符指针在开始讲解这一章节之前,我们需要了解指针前面声明的类型的意义类型 * 指针名对于指针来说,我们在给指针进行声明时,我们声明的类型并不是指针的类型,而是指针所指向的地址的类型,也就是指针看待这段地址的方式,它该如何读取数据,它如果加一该移动多少位,只有了解了这个才能方便理解下面的内容我们首先来说的就是字符指针ch...原创 2019-11-09 23:36:02 · 736 阅读 · 0 评论 -
C语言程序设计 | 模拟实现字符串操作函数:strlen, strcmp, strcpy, strcat, strchr, strstr
模拟实现字符串和内存操作函数(一)目录:strlenstrcpystrcatstrcmpstrstrstrchrstrlensize_t strlen(const char* str)字符串以‘\0’作为结束标志,strlen函数返回的是在字符串中‘\0’前面出现的字符个数(不包含’\0’)。参数指向的字符串必须要以‘\0’结束。函数的返回值为size_t,是无符号类...原创 2019-11-18 22:40:04 · 502 阅读 · 0 评论 -
C语言程序设计 | 模拟实现内存操作函数:strncpy, strncat, strncmp, memcpy, memmove
模拟实现字符串和内存操作函数(二)目录:strncpystrncatstrncmpstrcmpmemcpymemmovestrncpychar* strncpy(char* dst, const char* src, size_t num)strncpy表示把src所指向的字符串中以src地址开始的前n个字节复制到dst所指的数组中,并返回被复制后的dst。strncp...原创 2019-11-19 22:43:19 · 260 阅读 · 0 评论 -
C语言程序设计 | 操作符介绍与使用方法
目录:算术操作符移位操作符位操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构成员算术操作符+ - * /注意事项:1.除了%运算符之外,其他的几个操作符可以作用于整数和浮点数2.对于/操作符如果两个操作符都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。3.%操作符的两个操作数必须为整数。返回的是整数之后余数移...原创 2019-10-19 19:30:41 · 257 阅读 · 1 评论 -
C语言程序设计 | 大端小端存储解析以及判断方法
当我们在C语言中查看数据在内存中的存储时,我们经常会发现一个很奇怪的现象,什么现象呢?例如下面这段代码int main(){ int i = 1; return 0;}数据在内存中的存放方式似乎和我们想象的顺序不太一样,在我们的常规认知不一样,在我们的常规认知中,它的存放方式应该是00 00 00 01,那造成这个的原因是什么呢?因为C语言在内存中存放数据时采用了两种存储模式,...原创 2019-10-23 23:09:48 · 773 阅读 · 0 评论 -
C语言程序设计 | 三子棋游戏
三子棋是黑白棋的一种。三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉、一条龙、井字棋等。将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将一方自己的三个棋子走成一条线,就能获胜。以上介绍来自百度百科下面来以我自己的理解讲解如何用C语言来实现三子棋对于一款游戏,首先我们必须要有一个可视化的菜单,供玩家选择进入游戏或者退出游戏。void Menu_Game(){ printf(...原创 2019-10-11 13:50:19 · 1285 阅读 · 1 评论 -
C语言程序设计 | 扫雷游戏
《扫雷》是一款大众类的益智小游戏,于1992年发行。游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。以上就是扫雷的介绍,来源百度百科。我在网上找了几个扫雷游戏,对于这样一个游戏我们不仅仅要实现其基础的功能,还要为了提升游戏性,我们需要实现两个功能1.当第一个为炸弹时,我们需要将炸弹移动到别的地方,防止游戏一开始就结束2.当我们选择的...原创 2019-10-17 13:20:05 · 3578 阅读 · 2 评论 -
C语言程序设计 | 程序环境和预处理:翻译环境和执行环境、宏、条件编译
程序环境和预处理:翻译环境和执行环境宏条件编译翻译环境和执行环境在ANSI C的任何一种实现中,存在两种不同的环境。第一种是翻译环境,在这个环境中源代码被转换成可执行的机器指令。第二种是执行环境,它用于实际执行代码。翻译环境我们写的代码是如何从一开始的.c文件变化为可执行的.exe文件,就是在这一步完成的。组成一个程序的每个源文件通过编译过程分别转换成目标代码每个目标...原创 2019-12-06 15:38:21 · 510 阅读 · 0 评论 -
C语言程序设计 | 结构体内存对齐,位段
在我们学习结构体时,可能会碰到几个难以理解的问题,一个是内存对齐,一个是位段。所以我想分享一下我对这两个问题的理解,来帮助大家更好的学习这两个知识点。内存对齐int main(){ struct { char i; char k; int j; }s1; struct { char i; int j; char k; }s2; printf("%d\...原创 2019-11-21 23:22:36 · 419 阅读 · 0 评论 -
C语言程序设计 | 结构体,枚举,联合
目录:结构体枚举联合结构体结构是一些值的集合,这些值成为成员变量。结构的每个成员可以是不同类型的变量结构体的声明 struct s { char a; int b; }s1;这里的a和b就是结构体的成员变量,s1就是结构体的名字。当我们在声明结构体时,可以忽略掉结构体标签s,进行不完全声明 struct { char a; int b; }s2...原创 2019-11-22 14:36:31 · 459 阅读 · 1 评论 -
C语言程序设计 | 动态内存管理:动态内存函数介绍,常见的动态内存错误,柔性数组
动态内存管理目录:动态内存函数的介绍常见的动态内存函数的错误柔性数组为什么会有动态内存管理呢我们在日常使用中,创建一个数组,一个变量时都会开辟空间如: int a; //在栈上开辟一个四字节的空间 char str[5]; //在栈上开辟一个五字节的连续的空间但是上面这种开辟空间的方法都具有一个特点1. 空间开辟的大小是固定的,无法修改2. 声明数组的时候必须指...原创 2019-11-28 18:29:17 · 513 阅读 · 0 评论