C/C++
文章平均质量分 72
适合于零基础的同学全面学习
殇雪️️️️️
学无止境
展开
-
C 结构体
C语言中有整型、浮点型和字符型三种基本数据类型,同一种类型的数据的集合是数组,多种类型的数据的集合就是结构体。1.结构体的定义结构体是类似于名片形式的数据集合体,可以把它理解为一种由用户自定义的特殊的复合型的“数据类型”,在这个复合型的“数据类型”中可以包含多种基本数据类型,我们可以把它作为一个整体来操作。就像是某个公司做好一个名片模板为其员工制作统一样式的名片,上面可以印上公司名称、姓名、职务、联系电话、E-mail、地址等(见图 1),结构体就类似于这个制作名片的空白模板。知识.转载 2021-07-16 19:53:31 · 534 阅读 · 0 评论 -
深入理解C语言指针
一、指针的概念要知道指针的概念,要先了解变量在内存中如何存储的。在存储时,内存被分为一块一块的。每一块都有一个特有的编号。而这个编号可以暂时理解为指针,就像酒店的门牌号一样。1.1、变量和地址先写一段简单的代码:void main(){ int x = 10, int y = 20;}123这段代码非常简单,就是两个变量的声明,分别赋值了 10、20。我们把内存当做一个酒店,而每个房间就是一块内存。那么“int x = 10;”和“int y = 20;”的实际含义如下:...转载 2021-06-17 15:39:48 · 637 阅读 · 0 评论 -
指针的初始化和赋值(简单说明)
突然关于指针有个地方搞不明白,比如int *p=&a;我们不是说"*"是取值的吗,那么后面不应该跟的是一个数值,怎么是一个地址?原创 2021-06-18 15:35:02 · 3282 阅读 · 1 评论 -
二维数组指针,指针数组与数组指针的区别,一看就懂
二维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,它们之间没有“缝隙”。以下面的二维数组 a 为例:int a[3][4] = { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} };原创 2021-06-18 14:42:26 · 4750 阅读 · 5 评论 -
C++的三种传参方式
1.值传递程序示例:#include<iostream> using namespace std; void swap(int a, int b); int main() { int x = 10; int y= 20; cout<<x<<" "<<y<<endl; swap(x, y); cout<<x<&l原创 2021-07-17 17:59:48 · 4622 阅读 · 5 评论 -
C++引用
1.引用的定义引用可以看做是被引用对象的一个别名,在声明引用时,必须同时对其进行初始化。引用的声明方法如下:类型标识符 &引用名 = 被引用对象#include <iostream> using namespace std;int main(){ int a = 10; int &b = a;cout<<a<<" "<<b<<endl;cout<<&a<<" "<&转载 2021-07-17 13:38:52 · 131 阅读 · 0 评论 -
C++编译预处理
C++的预处理是编译器在编译源程序之前,先由预处理器处理预处理指令,由于在C++源程序中有各种编译命令,而这些编译命令由于是在程序被正常编译之前执行的,故称为预处理命令(或指令)。预编译命令用来扩充C++程序设计的环境,使得程序书写变得更加简练和清晰。C++提供的预处理功能主要有以下3种:宏定义命令。文件包含命令。条件编译命令。为了与一般C++语句相区别,编译预处理命令以符号#开头,并且末尾不...原创 2020-11-07 19:24:00 · 1801 阅读 · 0 评论 -
C++程序的多文件组织
构造一个大型程序时,如果程序开发时间有限,这种形式的团队协作就非常重要。利用函数将一个编程任务分解为子任务的一个优势在于,不同的人可以负责不同的子任务。在程序进行编译时,以程序模块(即程序文件)为编译单位,即分别对每一个编译单位进行编译。如果发现错误,可以在本程序模块范围内查错并改正。1.头文件考虑标识符在其他文件中的可见性。使用头文件是很有效的方法。例如: #include <i...原创 2020-11-06 21:41:00 · 2065 阅读 · 3 评论 -
C++变量的存储类型
C++变量和函数包括两个属性:数据类型和数据的存储类型。存储类型是指数据在内存中存储的方式。变量的存储类型分为四种:自动类型(auto),寄存器类型(register)、静态类型(static)外部类型(extern)其中,自动类型、寄存器类型的变量属于动态变量;静态类型、外部类型的变量属于静态变量。1.自动类型(auto)用自动类型关键词auto说明的变量称为自动变量。auto只能修饰局部...原创 2020-11-05 20:38:00 · 1574 阅读 · 0 评论 -
C++动态存储方式与静态存储方式
如果从变量值存在的时间(即生存期)来分,可将程序中的变量分为:动态存储方式和静态存储方式。它们所占用的存储空间区域不同。C++存储空间区域代码区:存放可执行程序的程序代码。静态存储区:存放静态变量和全局变量。栈区(Stack):存放动态局部变量堆区(Heap):存放new和malloc()申请的动态内存。栈区和堆区统称为动态存储区。动态存储方式动态存储区可以存放函数的参数、自动变量、...原创 2020-11-03 20:38:00 · 1368 阅读 · 1 评论 -
C++函数五(局部变量与全局变量和域运算符)
根据变量作用域的不同,可将程序中的变量分为局部变量和全局变量。1.局部变量在函数或者块内定义的变量称为局部变量。局部变量仅在定义它的函数或块内起作用,在这个范围之外不能使用这些变量。局部变量的作用域也称为块作用域。函数内部使用的局部变量包括形式参数和函数体内定义的变量。例如:float f1(int a){......int b, c;//局部变量 a ,b ,c在函数体f1内有效...原创 2020-11-03 19:02:00 · 618 阅读 · 0 评论 -
C++函数四( 具有默认参数值的函数)
在C++语言中,可以设置函数形参的默认值,在调用函数时,若明确给出了实参的值,则使用相应实参的值;若没有给出相应实参的值,则使用默认的值。这将为函数调用带来方便和灵活。【示例】#include<iostream>using namespace std;int max(int x = 70, int y = 60, int z = 50) { int m; i...原创 2020-11-03 18:45:00 · 553 阅读 · 0 评论 -
C++函数三(内联函数和函数重载)
内联函数,是为了解决程序中函数调用的效率问题。函数重载允许程序员定义函数时使用相同的函数名,以不同数据类型的数据作为形参,实现相似功能的函数。内联函数在调用函数时,系统要将程序当前的一些状态信息、断点信息保存到堆栈中,同时转到被调函数的代码处去执行函数体语句,这些参数保存与参数恢复的过程需要时间和空间开销,使程序执行效率降低。为此才引入内联函数。内联函数也称为内嵌函数,在使用内联函数时,C+...原创 2020-11-01 20:27:00 · 260 阅读 · 0 评论 -
C++函数二(函数的嵌套调用和递归调用)
函数的嵌套调用C++不允许对函数作嵌套定义,也就是说在一个函数中不能完整地包含另一个函数。在一个程序中每一个函数的定义都是互相平行和独立的。虽然C++不能嵌套定义函数,但可以嵌套调用函数,也就是说,在调用一个函数的过程中,又调用另一个函数所谓嵌套调用,是在调用一个函数并执行该函数的过程中,又调用另一个函数的情况。如在main()函数中调用了a函数,而在a函数的执行过程中又调用b函数。这就构成...原创 2020-10-31 21:01:00 · 5667 阅读 · 0 评论 -
C++关于函数声明定义的位置
不知道刚开始学函数这块时,总以为要把函数声明放在函数定义前面,甚至有一种陷入框架的感觉,所以在此对此进行一下反思:根据C89规定,在任何执行语句之前,在块的开头声明所有局部变量。在C99以及C++中则没有这个限制,即在首次使用之前,可在块的任何位置都可以声明变量。也就是说只要在你调用函数前,能让编译器找到你的调用函数的信息就可以了,并不一定是要在前面的。我便搞了个代码试试:代码一:in...原创 2020-10-31 20:18:00 · 6012 阅读 · 1 评论 -
C++函数一(标准库函数,自定义函数)
1.标准库函数下面以sqrt函数为例,解说下标准函数:sqrt函数用于计算一个数的平方根。sqrt函数从一个数(如9.0)开始,计算出它的平方根(如3.0)。函数开始时使用的值称为该函数的实参,它计算后得到的值称为返回值。有的函数可能有多个实参,但函数的返回值不能超过1个。如果将函数视为小程序,那么实参就相当于输入,返回值则相当于输出在程序中使用函数时,例如:the_root=sqrt(...原创 2020-10-30 14:17:00 · 2302 阅读 · 0 评论 -
C++扑克牌发牌游戏程序(包括C++随机数的解释)
C++产生随机数1.C++中没有自带的random函数,要实现随机数的生成就需要使用rand()和srand()。2.函数rand()是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。而使用同种子相同的数调用 srand()会导致相同的随机数序列被生成。srand((...原创 2020-10-29 20:06:00 · 5095 阅读 · 0 评论 -
C++数组二(字符数组)
1.字符数组和字符串字符数组是用来存放字符数据的数组,就是说,字符数组中的每个元素存放一个字符,字符数组也可以用来存放字符串。字符串常量字符常量双引号单引号字符常量符串“A”占2个存储单元(多了’0’)字符A仅占一个存储单(1)字符数组的定义格式如下:char数组名[常量表达式](2)字符数组的初始化赋值给字符数组的各个元素逐个赋初值...原创 2020-10-29 19:56:00 · 811 阅读 · 0 评论 -
C++数组一
所谓数组,就是一个集合,里面存放了相同类型的数据元素特点1:数组中的每个数据元素都是相同的数据类型特点2:数组是由连续的内存位置组成的1. 一维数组(1)一维数组定义方式一维数组定义的三种方式:数据类型 数组名[ 数组长度 ];数据类型 数组名[ 数组长度 ] = { 值1,值2 ...};数据类型 数组名[ ] = { 值1,值2 ...};示例int main()...原创 2020-10-26 20:53:00 · 90 阅读 · 0 评论 -
C++程序流程结构
一.选择结构1.if语句<1>if<2>if......else....<3>if.....else if......else【实例】输入一个年份,判断是否为闰年。闰年的年份必须满足以下两个条件之一)(1)能被4整除,但不能被100整除的年份都是闰年。(2)能被400整除的年份都是闰年 include <iostream>using...原创 2020-10-25 14:33:00 · 422 阅读 · 0 评论 -
C++运算符与表达式
1. 算术运算符作用:用于处理四则运算算术运算符包括以下符号:运算符术语示例结果+正号+33-负号-3-3+加10 + 515-减10 - 55*乘10 * 550/除10 / 52%取模(取余)10 % 31++前置递增a=2; b=++a;a=3; b=3;++后置递增a=2...原创 2020-10-24 20:01:00 · 244 阅读 · 0 评论 -
C++基本输入/输出
1.输入/输出流(I/O流) 在C++中定义了通过输入/输出流(I/O流)的方法进行输入输出操作。在I/O流中,输入操作是通过cin 来实现的,而输出操作是通过cout来实现的。cin 和cout都是在头文件iostream中定义的,所以在程序中首先要包含输入/输出流的头文件,即#include<iostream>。cout语句的一般格式为: cout<<表...原创 2020-10-05 21:20:00 · 1604 阅读 · 0 评论 -
C++数据类型
C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存1. 整型作用:整型变量表示的是==整数类型==的数据C++中能够表示整型的类型有以下几种方式,区别在于所占内存空间不同:数据类型占用空间取值范围short(短整型)2字节(-2^15 ~ 2^15-1)int(整型)4字节(-2^31 ~ 2^31-1)long(长整形...原创 2020-10-04 17:48:00 · 148 阅读 · 0 评论 -
C++初识
1 .注释作用:在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码两种格式单行注释:// 描述信息通常放在一行代码的上方,或者一条语句的末尾,==对该行代码说明==多行注释: /* 描述信息 */通常放在一段代码的上方,==对该段代码做整体说明==提示:编译器在编译代码时,会忽略注释的内容2. 变量作用:给一段指定的内存空间起名,方便操作这段内存...原创 2020-10-04 17:14:00 · 80 阅读 · 0 评论 -
C++循环案例结构——猜数字
#include<iostream>using namespace std;#include<ctime>int main() {srand((unsigned int)time(NULL));int num = rand() % 100 + 1;int val;for ( int i=0; i <= 10; i++){cout <&l...原创 2020-09-28 21:10:00 · 453 阅读 · 0 评论