自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 【C++入门(4)】引用、内联函数、auto

我们看下面这个例子。我们知道用 double 类型的变量给 int 类型的变量赋值是肯定没问题的,那么到引用时怎么会出现这种情况呢?这是因为这些操作都属于类型转换,而在类型转换时,不论是这样的隐式类型转换,还是强制类型转换,都不是简单的直接将右值赋给左值,而是先创建了一个临时变量来接收右值,再通过这个临时变量,把值赋给左值。这个临时变量是一个常值,可以说是被 const 修饰的。当这个类型转换的语句执行时,编译器先创建了一个这样的常量,里面存放变量b的整数部分的值,再将这个常值赋给变量a。

2024-06-19 23:04:30 992

原创 探究C语言函数栈帧的创建和销毁

在C语言程序中,每当一个函数被调用时,系统都会在栈上为该函数分配一块内存空间,这块内存空间就被称为栈帧。栈帧中包含了函数执行所需的所有信息,如局部变量、参数、返回地址等。栈帧的创建和销毁是函数调用的核心部分,它们确保了函数能够正确地执行和返回。本文将在VS2013环境下,通过实践操作,对比较简单的C语言程序进行调试的基础上,对C语言函数栈帧的创建和销毁过程进行详细的论述,并探讨函数中局部变量的创建、参数的传递、形参的引用以及返回值等过程。

2024-06-19 20:08:50 913

原创 【C++入门(3)】函数重载、引用

C语言中不允许同名函数的存在,如果一个程序中有两个函数的函数名完全相同,就会报错。而C++中是允许同名函数的存在的。

2024-06-17 20:37:36 593

原创 【C++入门(2)】输入输出与缺省参数

含缺省参数的函数,声明与定义同时出现时,只需要在函数声明中规定缺省参数,而函数定义中不可以出现缺省参数:这一规定是为了避免出现在函数声明与函数定义中,缺省参数被赋予的初值不同而导致的冲突。

2024-06-14 07:30:00 357

原创 【C++入门(1)】命名空间

我们先简单认识下C++的来历,C++是在C语言的基础上发展来的。当年C++的设计者Bjarne Stroustrup,本贾尼·斯特劳斯特卢普先生设计C语言之初,是为了对C语言做出一些更改,弥补C语言在一些方面的不足,或者做出其他的设计,来让C语言更加适合程序员的使用。简而言之,Bjarne Stroustrup当时只是考虑做些小的补充,然而后来,随着补充工作的逐渐增多,以及一些大的改动,他的“补充版C语言”最终演变成了一门新的语言,也就是C++.

2024-06-13 20:09:30 893 2

原创 【C语言指针专题(4)】指针与一维数组

这里我们使用 &arr[0] 的方式拿到了数组第一个元素的地址,但是其实数组名本来就是地址,而且 是数组首元素的地址,我们来做个测试。我们发现数组名和数组首元素的地址打印出的结果一模一样,数组名就是数组首元素(第一个元素)的地址。这时候我们可能会有疑问,如果数组名是数组首元素的地址,那下面的代码要怎么理解呢?如果数组名是数组首元素的地址,那么这里的结果应该是4或8,也就是一个地址的大小。但我们已经知道结果是40,是10个整型的大小。这是为什么呢?

2023-12-20 23:56:22 786 1

原创 【C语言指针专题(3)】指针的简单使用(野指针、assert断言、传值调用和传址调用)

assert.h 头文件定义了宏 assert() ,⽤于在运⾏时确保程序符合指定条件,如果不符合,就报错终止运行。这个宏常常被称为“断言”。assert(p!= NULL);上面代码在程序运行到这一行语句时,会验证变量 p 是否等于 NULL。如果确实不等于 NULL,程序继续运行,否则就会终止运行,并且给出报错信息提示。我们知道在函数调用时需要传递参数。传值调用:直接把变量本身传递给函数。传址调用:把变量所在的地址传递给函数。//演示3.1.1int main()int a = 0;

2023-11-25 14:16:21 919 4

原创 【C语言指针专题(2)】指针的运算

我们知道变量的值是可以随时进行赋值改变的,而当一个变量被const修饰时呢?这里num1是可以被修改并打印的,但是num2是被const修饰的变量,不可更改,对它进行赋值会导致程序报错。然而我们也不是就完全没办法改变num2中的值了。运用指针指向num2再进行解引用,就可以对num2中的值进行修改。这里的目的只是介绍这样一个知识点,但平时编程时并不建议这样做,因为这样实际是在破坏语法规则。

2023-11-25 12:38:14 845 1

原创 【C语言指针专题(1)】简单了解指针

我们已经知道,通过&获取到的地址就是一串十六进制数字,其实也就是一个数据,那么自然而然地也可以像整型、字符、浮点数一样,通过创建一个变量,把这个数据存储到计算机中。C语言中,创建的用于存储地址的变量,就叫做指针变量。//演示2.2.1int main()//创建指针变量pareturn 0;可以看到变量a的地址很好的存放到了指针变量pa中。

2023-11-23 14:21:08 869 4

原创 水仙花数计算问题

水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”。

2023-11-08 14:15:15 90 4

原创 扫雷游戏(9*9)

在function.c中定义init,用两层for循环对传入的数组进行赋值,赋为传入的指定数值打印传入的数组 ,并在第一行第一列加上坐标数方便寻找雷盘中的指定数利用随机数生成雷的位置,如果这个位置在棋盘内并且还没有布上雷,那么给这个位置的数组值赋为‘1’来代表有雷while循环用来判断su,实现对雷盘的重复排查对输入的坐标进行判断,首先这个数必须在雷盘之中,否则提示坐标错误在while循环中有两个分支,一个是排查坐标刚好有雷,那么要判断游戏失败跳出循环;

2023-11-08 09:20:09 130 5

原创 C语言中如何生成随机数

为了避免出现这种情况,我们需要用srand函数来设置一个“种子”,通过种子的变化,使每次计算的随机数值也变化起来。也就是说,如果每次种子的取值不一样,随机数值就会不一样。时间戳是指从1970年1⽉1⽇0时0分0秒开始,到程序运行为止,所经过的秒数,通过time函数来调用。可以看到两次生成的随机数值是一样的,其原因正是rand函数是靠一个公式来计算一个值作为随机数的。这样我们就可以对上面的代码进行一下改造,让每次程序运行后生成的随机数值不同。这个随机数其实是伪随机数,是通过一定的公式方法计算出来的。

2023-11-01 13:00:56 114 3

原创 猜数字游戏

input变量用于接收游戏开始时对菜单选项的选择,sum变量记录程序执行后总游戏次数,score变量记录游戏中猜中数字消耗的最少次数,num变量用于生成随机数作为需要猜的数字,guess变量用于接收每次猜测的数字,pre变量用于记录一次游戏中猜数字的次数。57到60行进行sum变量和pre变量的比较,取最小值赋给sum,来实现对多次游戏中猜的最小次数的计数。可以重复游戏,程序会记录每次程序启动后游戏的次数,以及猜中数字的最少次数。68到88行实现菜单打印和菜单选项的选择,以及选择后的分支操作。

2023-10-28 15:42:10 105 3

原创 C语言 分支结构

C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种 结构的组合。我们可以使⽤ if 、 switch 实现分⽀结构,使⽤ for 、 while 、 do while 实现循环结构。这里先介绍分支结构。

2023-10-28 14:04:58 86 3

原创 狼找羊问题

一个环型有10个洞,一兔子藏在其中一个洞,某狼钻进第一个洞找不到兔子,就隔一个洞,从第三个洞进去找,还是找不到就隔两个洞,从第六个洞找,找不到就隔三个洞,以此类推.狼一直找不到兔子,问兔子有可能在哪一个洞?

2023-10-26 15:55:30 53 1

原创 C语言内置数据类型介绍

C语言中内置数据类型可以分为四类,分别是:字符型、整型、浮点型和布尔类型。

2023-10-25 12:58:44 108 4

原创 C语言学习:C语言常见概念

C语言常见概念介绍

2023-10-14 17:55:44 151 8

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除