C/C++
C/C++的学习
友人和他的朋友们
公众号:友人和他的朋友们 Java 全栈文档库 www.codermast.com 编程桅杆的作者
展开
-
C语言入门易错点:整型提升和截断
C语言入门易错点:整形提升和截断什么是整型提升整型提升的意义在什么情况下会发生?截断什么是整型提升 C的整形算术运算总是至少以缺省整形类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数再使用之前被转转为普通整型,这种转换称为整型提升。整型提升的意义 表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度一般就是int的字节长度,同时也是CPU的通用寄存器的长度。 因此,即使两个char类型的相加,在CPU执行时实际上也要先转原创 2020-12-14 20:40:41 · 622 阅读 · 5 评论 -
简单概述C语言的操作符
文章目录算数操作符移位操作符位操作符赋值操作符复合赋值符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用函数调用访问结构体算数操作符+ - * / %使用方法:只有%不能操作浮点数对于/运算符来讲,如果两个数中最少一个为浮点数,那么计算的结果为浮点数。% 模除运算,是取整除之后的余数,只能操作整数,但对于负数来讲,算出来的结果仍为对应正数的模移位操作符 >> <<使用方法:>>右移操作符:将一个数的二进制编码向右移动一原创 2020-12-09 20:38:33 · 338 阅读 · 0 评论 -
C语言基础:整数数据在底层的存储
数据类别整数分为三种:正整数负整数零此三种中,在计算机的存储中,可以将0和正整数归为一类底层存储计算机在底层存储这些整数的时候,存储的是数据的二进制数的补码,由0和1组成,对于第一类(正整数和0)来讲,只要符合二进制规则即可存储,那么对于负数来讲,无法直接以01代码的形式写入,这时候就出现了一种特定的存储方法,仍然以01代码为基础,只是改变了计数的规则第一类:二进制编码 == 反码 == 补码第一类较为简单,在此不做过多解释,对于不知道二进制编码和反码、补码的请自觉翻阅以前的笔记第二原创 2020-12-08 23:32:10 · 320 阅读 · 0 评论 -
C语言:函数基础之递归
什么是递归递归就是在一个函数体内自己调用自己,既然自己调用自己,就必须设定跳出来的条件,否则会是一个死循环,不能够实现功能。演示功能:输出一个数的阶乘的值#include <stdio.h>//声明这个函数int Factorial(int num){ num -= 1; if (num <= 1) return num; return num * Factorial(num);}int main(){ //输出10的阶乘; Factorical(1原创 2020-12-08 23:00:12 · 119 阅读 · 0 评论 -
C语言入门必备实战详解:三子棋(附源代码和效果图)新手必做
** 文章目录 **文章目录游戏简介游戏效果图游戏源码游戏简介三子棋,一个古老的游戏,其规则十分简单,当同一玩家的棋子连成一条线,即为获胜游戏效果图游戏源码头文件先定义游戏的头文件为game.h#define ROW 3#define COL 3//初始化棋盘void BoardInit();//打印棋盘void BoardShow();//玩家下子void BoardPlayer();//判断棋盘是否下满char IsFull();//判断输赢char B原创 2020-12-08 17:24:27 · 653 阅读 · 1 评论 -
浅谈c语言函数和指针参数
文章目录c语言函数函数的定义函数的类别如何查找库函数函数的语法函数命名规范函数参数疑惑?总结c语言函数函数的定义函数就是将一段可用代码进行封装,实现某种功能,达到代码的重复利用,也可以理解为一个子程序,其本身就是为了实现某种功能,将实现功能的代码进行打包而已。函数的类别主要分为:库函数最常见的库函数如printf() scanf()等。每个头文件都包含了不同的库函数,也可以将头文件理解为函数的库,使用时进行加载引用即可调用自定义函数由用户自己编写的函数,工程的主要功能实现,一般都靠自定义原创 2020-12-03 00:55:05 · 214 阅读 · 0 评论 -
二分查找法(折半查找) - 一个简单的有序查找算法
适用范围:二分查找算法又叫折半查找算法,算法的效率是很高的,这点毋庸置疑,但其有自己特有的使用范围,仅可以查找有序的数列,对于无序、乱序的数列是不适用的方法思维:每次将查找的数列进行折半拆分,也就是一分为二的思想理念,每次匹配一个部分,重复多次,即可查询到相应的数字。例如:一个[a,b]的闭区间,想查找一个该区间内的值将区间一分为2第一个为[a , (a+b)/2] 第二个区间为[(a+b)/2,b]将需要查找的数分别与这两个区间的最大值和最小值比较如果在该区间,则将该区间再次进行拆分,原创 2020-12-02 16:55:44 · 650 阅读 · 1 评论 -
C语言指针 知识点 浅谈
如果你能看到这篇文章,说明你已经对c语言有了一个简单初步的认识,那么请耐下心来思考一下,c语言当中,有很多的数据,在一个简单的程序当中都会出现很多的数据计算,那么这些数据是存储在哪里呢?具体存储在哪个地方呢?计算机又是如何去寻找这些数据呢?什么是指针?先来解释一下什么是指针,指针其实就是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。只不过他存储的只是数据的地址。简单的来讲,每个数据都有一个地址,而指针就是专门存储这个地址的。也就是说指针也是一个变量。指针是一个变量,既然说他是一个变量,那他原创 2020-11-30 18:28:21 · 4625 阅读 · 0 评论 -
使用c语言写的一个简单的猜数字游戏
介绍经过了一段时间的学习,掌握了基本的语法,所以就试着写了一个简单的猜数字的小游戏,话不多说,上代码。代码#include <stdio.h>// 写一个简单的猜数字游戏//菜单函数void menu(){ printf("################################\n"); printf("##########猜数字游戏############\n"); printf("##########1.开始游戏############\n"); print原创 2020-11-29 21:18:31 · 1795 阅读 · 0 评论 -
简单的二分法查找说明
简述分法查找适用于数据量较大时,但是数据需要先排好顺序。主要思想是:确定该区间的中间位置K将查找的值T与array[k]比较。若相等,查找成功返回此位置;否则确定新的查找区域,继续二分查找。每一次查找与中间值比较,可以确定是否查找成功,不成功当前查找区间将缩小一半,递归查找即可。即每次将范围缩小一半,即可,能够大大提高算法的效率。但是前提是数组中的数是排列好的。练习目标:将一个将0-9按从小到大排列的数组中查找一个0-9的随机值,输出其下标代码如下://2分法查询数据#incl原创 2020-11-29 20:15:41 · 563 阅读 · 0 评论 -
c语言中输出n个数的阶乘的和 - 补
前言对于和我一样的初学者来讲,前期的学习总是枯燥乏味的,学的很简单,但是却又很重要,没有基础就没有好的代码功底,所以还是好好学习,我整理了一c语言初学者的100道入门题,希望你们能和我一起每天坚持刷题哦。正文话不多说,直接先上代码。#include <stdio.h>//先可以写一个求阶乘的函数//参数a为所求阶乘的数int factorial(int a){ int factorial = 1; for (int i = 1; i <= a;i++) {原创 2020-11-29 19:28:37 · 1383 阅读 · 0 评论 -
Struct结构体的使用方法
结构体是不同类型值的集合,一个结构体内可以有不同的值,这些值成为成员变量,每个成员变量额可以有不同的类型。结构体的语法和声明:struct name{ type1 name1:value1; type2 name2:value2;}例如:描述一个学生:定义结构体struct student{ char name[20]; int age; int id;};//不要忘记这里的分号初始化及结构体调用结构体struct stu->name...原创 2020-11-29 19:18:31 · 362 阅读 · 0 评论 -
C语言的两种条件选择语句的使用方法
概述通常我们在写代码的时候,主要会用到的两种结构就是循环和条件判断,一般的简单程序都是若干个这两种语句的组合排列语法if语句if 语句也是有三种不同的形式结构,下面就来一一解释。第一种:单分支 if (判断条件) // 这里仅仅适用于执行语句只有一条 条件成立后执行的语句;第二种:双分支 if(判断条件) // 这里仅仅适用于执行语句只有一条 条件成立后执行的语句; else // 这里仅仅适用于执行语句只有一条 条件不成立执行的语句;第三种:多分支//原创 2020-11-25 22:52:09 · 4001 阅读 · 0 评论 -
简述C语言的三种循环
while循环语法//条件为真,即运行循环体while(循环条件){ 循环体;}break在while循环中的作用:其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。 所以:while中的break是用于永久终止循环的。continue在while循环中的作用:continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。for语法//条件为真即运行循环体原创 2020-11-23 23:58:25 · 716 阅读 · 0 评论 -
简单概述C语言中Static关键字的功能及用法
先了解一下变量的区分局部变量普通局部变量是再熟悉不过的变量了,在任何一个函数内部定义的变量(不加static修饰符)都属于这个范畴。编译器一般不对普通局部变量进行初始化,也就是说它的值在初始时是不确定的,除非对其显式赋值。全局变量全局变量定义在函数体外部,在全局数据区分配存储空间,且编译器会自动对其初始化。普通全局变量对整个工程可见,其他文件可以使用extern外部声明后直接使用。也就是说其他文件不能再定义一个与其相同名字的变量了(否则编译器会认为它们是同一个变量)。静态全局变量仅对当前文件可原创 2020-11-22 12:32:58 · 296 阅读 · 2 评论 -
C语言函数的简单书写规范和调用
函数的结构返回值类型 函数名(传入的实际参数,多个值则以英文状态下的逗号隔开){ 函数体,书写具体的函数内容,或者实现功能的代码}函数的书写写的是一个简单的max函数,其具体功能为:输入两个要比较大小的值,如果两个值不相等,则返回较大的数。//max函数功能://输入两个整数进行比较大小,如果不相等则输出较大的数int max(int a, int b){ if(a = b){ printf("两个数的大小相等,无最大值"); return 0;原创 2020-11-22 00:29:01 · 2314 阅读 · 0 评论