C/C++
文章平均质量分 54
C/C++是内功心法,可以不要,但必须要有。
码之有道
公众号《码之有道》,一起聊游戏全栈开发!
展开
-
零基础C语言快速入门一:语法结构分析
C语言是很多萌新程序员接触的第一门编程语言,因为还没有养成良好的编程思维,刚入门C语言的时候可能会觉得很难,特别是指针那块!今天就以最简单明了的方式带大家零基础入门C语言!C语言简述:C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及原创 2020-10-24 09:36:46 · 1068 阅读 · 1 评论 -
C++和C相比做了哪些优化?
一、变量检测增强在C语言中,重复定义多个同名的全局变量是合法的在C++中,不允许定义多个同名的全局变量C语言中多个同名的全局变量最终会被链接到全局数据区的同一个地址空间上int g_var;int g_var = 1;C++直接拒绝这种二义性的做法。二、struct类型加强 struct类型的加强:C语言的struct定义了一组变量的集合,C编译器并不认为这是一种新的类型C++中的struct是一个新类型的定义声明三、C++中所有的变量和函数都..原创 2020-09-16 22:34:22 · 504 阅读 · 0 评论 -
C++之register关键字
register关键字作用是请求编译器让变量a直接放在寄存器里面,运算速度更快在c语言中 register修饰的变量 不能取地址,但是在c++里面做了扩展1、register关键字的变化:C语言中无法取得register变量地址在C++中依然支持register关键字C++编译器有自己的优化方式,不使用register也可能做优化C++中可以取得register变量的地址2、C++编译器发现程序中需要取register变量的地址时,register对变量的声明变得无效。3、早期C语言编原创 2020-09-16 22:20:08 · 3072 阅读 · 0 评论 -
C++求圆的周长和面积
题目:求圆的周长和面积数据描述:圆的半径,周长,面积均用实型数表示输入数据:圆的半径 r输出结果:圆的周长,面积公式:计算周长 = 2*π*r;计算面积 = π* r2 ;方法1:用结构化方法编程,求圆的周长和面积 #include<iostream.h>using name std;void main (){ double r, girth, area; const double PI = 3.1415; //圆周率 cout ..原创 2020-09-16 22:04:08 · 22451 阅读 · 0 评论 -
C/C++高薪程序员学习资料分享(成神之路)
当你下定决定要在C/C++的道上一路走到黑时,就已经令人佩服了!与其他语言相比,C++是真的很难学!大家都说「劝人学法,千刀万剐;劝人学医,天打雷劈」,劝人学 C++ 可能也差不多。学习其他语言可能十天半个月就能做出一些小项目,但 C++ 学 10 年都不敢说自己精通,新手很容易陷入崩溃,从入门到弃坑。C++之路荆棘坎坷,能披荆斩棘,最终成为C++工程师的,相比其他语言的程序员也会有更多的收获。从事C++岗位的程序员较Java岗位要少的多,自然更容易获得高薪。所有对性能有高要求的场景,C/C++原创 2020-09-11 23:36:27 · 621 阅读 · 0 评论 -
详解C++中的智能指针
前言C++里面的四个智能指针: auto_ptr, unique_ptr,shared_ptr, weak_ptr 其中后三个是C++11支持,并且第一个已经被C++11弃用。C++11智能指针介绍智能指针主要用于管理在堆上分配的内存,它将普通的指针封装为一个栈对象。当栈对象的生存周期结束后,会在析构函数中释放掉申请的内存,从而防止内存泄漏。C++ 11中最常用的智能指针类型为shared_ptr,它采用引用计数的方法,记录当前内存资源被多少个智能指针引用。该引用计数的内存在堆上分配。当新增一个原创 2020-08-16 14:18:16 · 235 阅读 · 0 评论 -
详解C++的lambda表达式
1.概述C++ 11 中的 Lambda 表达式用于定义并创建匿名的函数对象,以简化编程工作。Lambda 的语法形式如下:[函数对象参数] (操作符重载函数参数) mutable 或 exception 声明 -> 返回值类型 {函数体}可以看到,Lambda 主要分为五个部分:[函数对象参数]、(操作符重载函数参数)、mutable 或 exception 声明、-> 返回值类型、{函数体}.2. Lambda 语法分析2.1 [函数对象参数]标识一个 Lam.原创 2020-08-16 10:53:31 · 1409 阅读 · 0 评论 -
详解C语言和C++语言中的强制类型转换
一、强制类型转换double db = 10.9;float fl= db; //默认数据类型转换二、C语言中的强制类型转换void *p = new int[10];int *pint =(int*) p; //C语言风格强制类型转换。使用()进行强制类型转换三、C++语言中的强制类型转换1.static_cast 用于默认数据类型的转换,也可以转换指针类型。 int a = static_cast<int>(98.87));int b = s...原创 2020-08-16 08:30:16 · 898 阅读 · 0 评论 -
VS无法打开源文件及无法打开链接库文件的解决方法
一、无法打开源文件依次点击“项目——配置属性——C/C++——常规”,在“附加包含目录”中加入.h文件所在的文件夹路径二、无法打开文件“XXX.lib”1、依次点击“项目——配置属性——链接器——常规”,在“附加库目录”中加入.lib所在的文件夹的路径 2、在“链接器”中找到“输入”,在“附加依赖项”中加入需要加入的xxx.lib;(要用;和其他链接库分原创 2017-04-24 16:56:50 · 117930 阅读 · 10 评论 -
条件编译小结
编码的时候经常要用到条件编译,每次都到网上去查比较浪费时间,今天总结一下以备后用 编译器GCC#ifdef __GNUC__#if __GNUC__ >= 3 // GCC3.0以上Visual C++#ifdef _MSC_VER(非VC编译器很多地方也有定义)#if _MSC_VER >=1000 // VC++4.0以上#if _MSC_VER转载 2016-11-19 13:35:37 · 308 阅读 · 0 评论 -
技术点积累(一)--产生不重复的五个随机数
结合容器知识产生在0到10之间产生5个不重复的随机数#include#include#include#includeusing namespace std;int main(){vector vec;srand(time(NULL));while(1){ int idx =rand() %10; //产生随机数 vector::iterator itr=vec.begi原创 2016-01-23 13:41:33 · 1257 阅读 · 0 评论 -
C++—STL学习笔记
#include用尖括号括起来时,编译系统会到C++系统所在的目录下去找该文件,如果找不到就出错。#include“circle.h”用双撇号是,编译系统先到用户当前目录下去找该文件,如果找不到,再到C++系统所在的目录下去找#include#include#include#includeusing namespace std;/*voi原创 2016-01-02 20:59:23 · 366 阅读 · 0 评论 -
C++冗杂易忘基础知识整合
、malloc是函数,c语言提供的库函数,包含在头文件一般在c中使用,对应的是free,不能用delete释放C++中用new,new和delete是C++提供的内建操作符,不是函数,不需要包含头文件int *p=new int; 或者 int *p=new int(10); 它在分配内存时可以同时进行赋值的*p=10; //赋值delete p; new 用完后必须原创 2015-12-21 21:25:09 · 454 阅读 · 0 评论 -
简易型和科学型计算器C语言课程设计1
#include#include#include#includeint main(){ void fac(int n); //声明阶乘函数 char n,d,h; double a,b,z,i=1; while(i!=0){ printf("****************************************************************\n"); printf("*原创 2015-07-08 22:58:01 · 1239 阅读 · 0 评论 -
图书管理系统C语言课程设计2
#include #include #include #define Max 3 typedef struct book{char book_num[10];char book_name[20];char book_writer[10];int book_kc;int book_xy;struct book *next;}BK;type转载 2015-07-08 23:06:09 · 5726 阅读 · 0 评论 -
数据结构与算法(2)--数组和typedef的运用
1.模拟数组增删改查的源码#include#include//包含了exit()函数#include#includestruct Arr{ //定义了一个数据类型 int *pBase; //存储的是数组第一个元素的地址 int len; //数组所能容纳的最大元素的个数 int cnt; //当前数组有效元素的个数};void init_arr(struct原创 2015-11-20 18:38:26 · 439 阅读 · 0 评论 -
数据结构与算法(3)--链表
1.链表的基础知识首节点: 第一个有效节点尾节点: 最后一个有效节点头节点: 头节点的数据类型和首节点类型一样 是第一个有效节点之前的那个节点 头节点并不存放有效数据 加头节点的目的主要是为了方便对链表的操作头指针: 指向头节点的指针变量原创 2015-11-22 10:34:59 · 389 阅读 · 0 评论 -
数据结构与算法(1)--指针复习
一、指针复习地址就是内存单元的编号从0开始的非负整数范围:0--FFFFFFFF[0-4G-1](地址线是32位,刚好控制2的32次)指针:指针就是地址 地址就是指针指针变量是存放内存单元地址的变量指针的本质是一个操作受限的非负整数(不能加乘除,只能加减)指针分类:1、基本类型的指针#includevoid f(int * i){ //定义一个int原创 2015-11-17 22:25:57 · 593 阅读 · 0 评论 -
数据结构与算法(4)--队列
队列线性结构的两种应用:栈和堆 栈和堆表示的是分配内存的方式不同静态 是以出栈压栈的方式分配内存的 动态内存是以一种堆排序的方式分配内存的静态内存在栈中分配,动态内存在堆中分配(如double *q=(double *) malloc(200))(q是静态分配的,在栈里分配的;200字节是动态分配的,是在堆里分配的)。在栈里分配的是系统自动帮忙分配的,在堆里分原创 2015-11-25 23:11:46 · 449 阅读 · 0 评论 -
字符编码笔记:ASCII,Unicode和UTF-8
1. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之...原创 2018-07-22 09:10:06 · 204 阅读 · 0 评论 -
打字游戏c语言
#include#include#include#include#include#includeint main(){ int i=0,b,a,j,ch,d=0,q=0,w=1; char c=0; printf("\n请按任意键开始游戏!\n\n");system("pause");system("cls");printf("start ");printf("1...");Sleep(500);原创 2015-07-08 23:08:40 · 2872 阅读 · 0 评论