C/C++基础知识
无
Echo木
这个作者很懒,什么都没留下…
展开
-
C++指针和引用、智能指针
三种智能指针的定义都在头文件中定义独占指针1.独占指针存在析构函数,由析构函数释放内存(通过delete),所以独占指针必须赋值(初始化)为动态分配得到的内存。不然普通内存不是new出来的,也没有delete,自然析构函数出错。2.独占指针不能赋值给另一个独占指针3.独占指针不能直接赋值给裸指针...原创 2021-07-10 14:58:00 · 528 阅读 · 1 评论 -
断言assert与if
程序分为debug版本和release版本1.断言是仅在debug版本起作用的宏当断言的表达式为逻辑真时,程序才继续往下执行,否则,终止程序2.何时用断言?assert和if的区别if下,所有的情况都是合理的,每一种合理情况用if-else分别处理,例如栈不空时进行出栈操作,栈空时跳出循环;而断言下,是程序中的错误,遇到时必须终止程序。当检测到为逻辑假时,意味着我们假设的错误出现了。#include<iostream>#include<assert.h>using n原创 2021-06-30 14:11:36 · 1735 阅读 · 0 评论 -
C/C++贪吃蛇游戏(彩色版)
罗列用到的一些知识:1.指定控制台光标2.设置控制台文字颜色3.监听键盘的函数kbhit4.生成随机数5.暂停函数Sleep6.函数cin.get()思路:1.初始化边界墙,初始化蛇,生成第一个食物2.进入循环:通过键盘得到方向移动蛇(打印时只需要修改原蛇蛇尾、原蛇蛇头和新蛇蛇头)并判断蛇头和食物坐标是否相等,是则产生新食物,更新分数、速度、蛇长度。/* *Author: Jin *Time : 2020/11/10 */#include<原创 2020-11-10 17:23:03 · 1113 阅读 · 0 评论 -
C++项目开发训练营
day1C++为什么语法特性多C++支持四种编程范式面向过程面向对象泛型编程函数式编程(lambda函数)#include<iostream>using std::cout;using std::endl;//范式一:面向过程 int add1(int a, int b){ return a+b;}//范式二:面向对象 class Add{ public: int operator()(int a, int b);};int Add::operator原创 2020-10-20 21:25:22 · 275 阅读 · 0 评论 -
C++语言知识
1.引用2.构造函数与析构函数都没有返回类型,构造函数可以重载,析构函数不能重载3.浅拷贝与深拷贝拷贝构造函数是特殊的构造函数,普通构造函数的形参无要求,拷贝构造函数的形参是本类对象的引用。拷贝与赋值的区别,赋值操作两类对象均存在,而拷贝用一个已存在的对象构造另一个不存在的对象(初始化)。浅拷贝,直接用实参的数据成员一一赋值,若数据成员的类型有指针,则对该指针也是直接赋值,指向形参的内存,并没有给新对象重载开启内存。这样最后对两对象析构时,同一块内存释放两次,异常。深拷贝,为新对象分配新的内存原创 2020-08-31 10:35:10 · 100 阅读 · 0 评论 -
常量指针与指针常量
常量指针const int *p;int const *p;常量指针本身是一个指针,指针指向的内容(即*p)不能改变,因而叫常量指针,但指针本身可以修改。可以把常量的地址赋值给常量指针,也可以把变量的地址赋值给常量指针。const int a=1;int b = 2;const int *p = &a;//常量的地址赋值给常量指针const int *q = &...原创 2020-04-13 11:06:43 · 223 阅读 · 0 评论 -
C/C++可以通过指针修改常量
常量修改原创 2020-01-22 18:44:59 · 2558 阅读 · 1 评论 -
指针和引用
引用是C++里面有C里面没有的,它们都能间接地指代其他对象,但引用比指针更安全区别:1.存在空指针(可以不用初始化,不指向任一对象),但不存在空引用(必须初始化),引用总是要指代一个对象,所以使用引用比指针更高效,指针在使用前得检查其是否有效(野指针)。2.指针可以重新被赋值指向另一个对象,但引用总是指向其初始化指向的对象。使用指针的情况:1.有可能不指向任何对象,这种情况下可置为空;...原创 2020-01-12 17:48:53 · 115 阅读 · 0 评论 -
数组名的意义
数组名的意义1.数组名是地址常量(常量不能被赋值),代表数组的首地址=第一维的地址=首元素的地址2.因此,a.对一维数组a[m]: &a[i] <=> a+i a[i]<=>*(a+i)特别地,当i=0时,&a[0]<=>a, a[0]<=>*ab.对二维数组a[m][n]: &a[i][j] <...原创 2020-01-11 12:33:22 · 2759 阅读 · 1 评论 -
格式转换符类型不匹配
#include<stdio.h>//#define debug void main(){#ifdef debug printf("123\n");#endif int b = 2.5; //b...原创 2019-11-16 21:33:57 · 628 阅读 · 0 评论 -
C++编程求两个矩阵的乘积
标题C++编程求两个矩阵的乘积代码如下:#include <iostream>using namespace std;int main (){ int m,n,a,b,i,j,k; int **a1; int **b1; int **c1; cout<<"输入第一个矩阵的行数与列数:"; cin>>m>>n; cout ...原创 2020-10-18 10:17:41 · 5150 阅读 · 1 评论 -
求1000以内的所有素数(质数)
求素数原创 2020-02-15 14:30:42 · 4256 阅读 · 1 评论