
C/C++学习
文章平均质量分 54
勉旃
不认命,心中所愿皆能实现;不将就,不为世俗只为热爱。
展开
-
matlab调用C程序
Matlab是矩阵语言,如果运算可以用矩阵实现,其运算速度非常快。但若运算中涉及到大量循环,Matlab的速度令人难以忍受的。当必须使用for循环且找不到对应的矩阵运算来等效时,可以把耗时长的函数用c语言实现,并编译成mex函数可以加快执行速度。Mex文件其实是一种动态链接库,旧版本Matlab可以直接调用.dll,新版本要调用.mexw32或.mexw64文件。Matlab本身是不带c语言的编译器原创 2017-11-19 15:27:39 · 603 阅读 · 0 评论 -
C++ 类详解
1、类的定义class 类名称{public: 公有成员(外部接口,可被使用该类的所有代码所使用)private: 私有成员 (只允许本类中的函数访问,而类外部的任何函数都不能访问)protected: 保护成员(与private类似,差别表现在继承与派生时)};2、类成员每个类可以没有成员,也可以定义多个成员,成员可以是数据、函...原创 2018-09-18 11:34:47 · 4706 阅读 · 0 评论 -
内存分配方式以及堆和栈的区别
转载:https://blog.youkuaiyun.com/shanchangyi/article/details/51854795对于一个程序要运行,涉及到的内存分配是一个首要问题,这里简单说一下一个简单的程序运行所涉及到的内存分配方式。另外,在数据结构中存在堆和栈的概念,栈是一种先进后出的数据结构,堆则是一种排序方式,而在内存分配中也存在堆(heap)和栈(stack)的概念,与数据结构中的概念不同...转载 2018-09-13 21:26:40 · 1169 阅读 · 0 评论 -
VS2015新建C++工程时,Object reference not set to an instance of an object
意思是未将对象引用设置到实例。刚在Windows7 64位上安装VS2015,创建工程时,就弹出此报错框。解决办法:在window中打开功能里输入regedit,回车打开注册器。然后进入如下路径中HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy将enable设置为0win7 64位...原创 2018-08-13 14:40:06 · 3660 阅读 · 0 评论 -
C++中cin、cin.get()、cin.getline()、getline()、gets()、getchar()、scanf()等函数的用法
1、cin>> 用法1:最基本,也是最常用的用法,输入一个数字:#include <iostream> using namespace std; main () { int a,b; cin>>a>>b; cout<<a+b<<endl; }输入:2[回车]3[回车] 输出:5 注意:>> 是会过滤掉不可见字符(如 空格 回车,TAB 等) cin>>noskipws>>i转载 2018-03-19 19:31:05 · 336 阅读 · 1 评论 -
C/C++拾遗(二)
17、C/C++ strlen(str)和str.length()和str.size()都可以求字符串长度。 其中str.length()和str.size()是用于求string类对象的成员函数 strlen(str)是用于求字符数组的长度,其参数是char*。 18、C/C++ 中字母的大小写转换 方法一:ASCII 码cin >> i;if ((i>=6...原创 2018-03-19 10:39:49 · 220 阅读 · 0 评论 -
C/C++拾遗
1、++分为前置和后置,前置++比+运算优先级高,后置比+运算符优先级低。 2、gets函数是读取字符串,以回车键结束,fgets是读取一行字符,以换行符结束,getc读入一个字符,fgetc读取一个字符,读取一个字节后后移一位 。 3、C中的结构体没有函数 但是C++的结构体可以有函数;这是C与C++结构体的区别。 C++的结构体可以被类取代,因为类相对于结构体 具有封装性等优势。 ...原创 2018-03-12 19:55:59 · 359 阅读 · 0 评论 -
C++中的引用
一、C++中的引用: 引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。引用(reference)是c++对c语言的重要扩充。引用就是某 一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。其格式为:类型 &引用变量名 = 已定义过的变量名。 引用的特点: ①一个变量可取多个别名。 ②引用必须初始化。 ③引用只能在初始化的时候引用一次 ,不能更改原创 2018-03-18 19:08:21 · 228 阅读 · 0 评论 -
C/C++中rand()函数产生随机数的用法
一、rand()1、rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数。即,rand()会返回一个范围在0到RAND_MAX(32767)之间的伪随机数(整数)。 2、rand()函数需要的头文件是:“stdlib.h” rand()函数原型:int rand (void); 使用rand()函数产生0-99以内的随机整数:int numbe原创 2018-03-18 10:33:46 · 12125 阅读 · 0 评论 -
C语言——链表笔记
我们至少可以用两种方式存储数据 1、数组 优点:存储速度快 缺点:需要一个连续的很大的内存;插入和删除元素的效率很低。 数组每个单元只存储元素的实际值 2、链表 优点:插入删除元素的效率高;不需要一个连续大的内存 缺点:查找元素效率低 链表每个单元分两部分,左边存储实际元素值,右边存储下一个元素的指针 链表术语: 头结点:头结点的数据类型和首节点的类型一样;头结点是首节点前...原创 2018-03-10 16:35:36 · 335 阅读 · 0 评论 -
C++笔记——指向常量的指针/指针常量
const int * p1;//指向常量的指针;p1是变量,*p1是常量,变量可以作为左值,也就可以改变,常量不能作为左值,变量有读写属性,常量只能读。 int const *p2; //同上,C++标准规定,const关键字放在类型或变量名之前等价的。 int * const p3; //指针常量;*p3是变量,p3是常量 const int * const p4; //*p4是常量,p4原创 2017-12-21 20:26:37 · 406 阅读 · 0 评论 -
C++笔记——自定义函数
1、定义 Perm–全排列函数 代码如下: void Perm(int* arr,int size,int N) { if(size == N) { for(size_t i=0;i<size;++i) cout<<arr[i]; cout<<endl...原创 2018-01-02 20:11:15 · 1331 阅读 · 0 评论 -
C++笔记——指针函数/函数指针
两者主要区别,一个是函数(指针函数),一个是指针变量(函数指针)。指针函数(1)定义 指针函数:顾名思义就是带有指针的函数,即其本质是一个函数,只不过这种函数返回的是一个对应类型的地址。 (2) 定义式 type *func (type , type) 如:int *max(int x, int y) 首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变原创 2018-01-02 19:44:34 · 247 阅读 · 0 评论 -
C++笔记——指针数组/数组指针
1、定义 指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针。定义 int *p[n]; 数组指针:a pointer to an array,即指向数组的指针。定义 int (*p)[n];初学者总是分不出指针数组与数组指针的区别。其实很好理解: 指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身的大小决定,每一个元素都是...原创 2018-01-02 10:52:12 · 758 阅读 · 0 评论 -
C++笔记——.和::和:和->的区别
在学习C++的过程中我们经常会用到.和::和:和->,在此整理一下这些常用符号的区别。 1、A.B则A为对象或者结构体;2、A->B则A为指针,->是成员提取,A->B是提取A中的成员B,A只能是指向类、结构、联合的指针;3、::是作用域运算符,A::B表示作用域A中的名称B,A可以是名字空间、类、结构;4、:一般用来表示继承;C++,中,下面的操作符是不能被重载的: . (成员访问或点操作原创 2017-12-21 19:15:12 · 477 阅读 · 0 评论 -
C++笔记——析构函数
1、析构函数的定义 析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,delete会自动调用析构函数后释放内存) C++当中的析构函数格式如下:class <类名>{ public: ~<类名>();};<原创 2017-12-25 21:59:31 · 749 阅读 · 0 评论 -
C++笔记——malloc基本用法
int *p = (int*)malloc(4);malloc 包含在“malloc.h”头文件中 (int*)强制类型转换 malloc函数只有一个形参,并且形参是整型4 表示请求系统为本程序分配4个字节 malloc函数会为我们分配内存,只能返回第一个字节地址 该行代码分配了8个字节,p变量占4个字节,p所指向的内存也占4个字节 p本身所占的内存是静态的,p所指向的内存是动态分配的fr...原创 2017-12-18 22:31:52 · 7228 阅读 · 0 评论 -
C++笔记——有关内存对齐
32位编译器: char :1个字节 char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器) short int : 2个字节 int: 4个字节 unsigned int : 4个字节 float: 4个字节 double: 8个字节 ...原创 2017-12-18 22:39:06 · 234 阅读 · 0 评论 -
Linux下使用g++编译C++程序——Compiling Cpp
g++和gcc:准确的说都是GNU(组织)的一个编译器区别:后缀为.c的文件gcc把它当做c程序,g++当做c++程序。后缀为c++的两者都当做c++程序。对于cpp程序,无论gcc或者是g++编译阶段都是相同的,都是用的gcc进行编译,但是在链接阶段gcc不能自动和c++程序使用的库连接。---------------------g++安装1.ubuntu下g++的安装安装g++...原创 2018-11-30 10:32:57 · 1534 阅读 · 0 评论