
C基础知识
Coldestmonth
这个作者很懒,什么都没留下…
展开
-
C语言中const的用法和理解
const的本质只需看const修饰的对象是什么和const的修饰变量的数据类型是什么,被const修饰的对象的值不能被修改 const int a 和 int const a 达到的效果一样int型变量a的值不可以被修改 const int * b 和 int const * b 都指a所指向的那块内存的值不可变,也就是*a的值不可变 int * const a 整数指针a的指...原创 2016-08-09 10:07:27 · 573 阅读 · 0 评论 -
如何使用docker部署c/c++程序
版权声明:本文为博主原创文章,未经博主允许不得转载。Docker介绍Docker是一个开源的容器引擎,它有助于更快地交付产品。Docker可将应用程序和基础设施层隔离,并且将基础设施当作程序一样进行管理。使用Docker,可以更快地打包,测试以及部署应用程序,并可以缩短从编程到部署运行代码的周期docker部署c/c++程序关于docker的使用网上有很多的教程但是很少有介绍如...原创 2018-05-03 23:36:42 · 49470 阅读 · 9 评论 -
c++11 中将类成员函数实现回调
bind是这样一种机制,它可以预先把指定可调用实体的某些参数绑定到已有的变量,产生一个新的可调 用实体,这种机制在回调函数的使用过程中也颇为有用。其实最早在C++98的时候,就已经有了std::bind1st和std::bind2nd分别用来绑定functor的两个参数,具体代码就不演示了,查查资料就知道了。这个特性在当时并没有引起太多的重视,可以说是食之无味。 C++11中提供了std...原创 2018-03-18 12:03:01 · 3608 阅读 · 0 评论 -
c/c++常用开源库汇总
偶然发现的一个博客地址,记录下来用到的时候去查找: http://blog.youkuaiyun.com/xiaoxiaoyeyaya/article/details/42541419原创 2018-01-13 15:37:35 · 1293 阅读 · 0 评论 -
C++分割字符串函数封装
#include <string>#include <vector>#include <iostream>#include <string.h>using namespace std;void split(const string& src, const string& separator, vector<string>& dest){ string str = src;原创 2017-11-15 11:20:25 · 355 阅读 · 0 评论 -
C++中类构造函数初始化列表和函数内赋值区别
C++类构造函数初始化列表 构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。C++类构造函数函数内赋值 构造函数函数内赋值是在函数体内将参数的值逐个赋值给类的成员变量。例class CExample {public: int a; float b; //构造函数初始化列表 CExample(): a(原创 2017-02-05 22:14:38 · 578 阅读 · 0 评论 -
动态库的生成和使用
动态库的生成 1)打开vs 新建项目,起的名字不能有中文2) 选择DLL和空项目3)写代码写代码就是我们之前写的xxx.c和xxx.h,只是不需要main()函数测试罢了。 你可以重新新建项目,重新写。 或者用之前写好的代码,生成库: 步骤如下: A)拷贝所需代码到工程所在目录B) 添加所需代码:C)修改代码 生成 DLL 时,通常创建一个包含正在导出的函数原型和/或类的头文件,并将 _原创 2016-09-22 22:22:28 · 511 阅读 · 0 评论 -
Qt中Qtableview的使用1(QSqlTableModel模型)
#include "mainwindow.h"#include "ui_mainwindow.h"#include<QMessageBox>#include<QSqlQuery>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setup原创 2016-09-14 18:25:56 · 2985 阅读 · 0 评论 -
冒泡排序思想和实现代码
冒泡排序的思想:冒泡排序是一种的最简单的排序方法,他的思想是通过不断的比较数组中前后两个元素的大小,找出数组无序部分的最大值或者最小值,并且将该元素放在数组无序部分的最后。第一次循环可以看成是整个数组无序 ,所以放数组最后。外循环每执行一次,就会将没有排序的的部分中最大或者最小的元素找出放在没有排序的部分最后的位置,内循环负责未排序部分,相邻元素之间的比较。冒泡排序代码实现:...原创 2016-08-09 11:15:06 · 841 阅读 · 3 评论 -
C/C++中malloc,delete和free,malloc的区别
malloc和free是C语言库函数,new和delete是C++操作符 new和delete在实例化对象时可以触发对象的构造函数和析构函数,malloc和free则不会 malloc和free在C/C++中都可以使用,new和delete只能在C++中使用 malloc的返回值类型是void* ,new的返回值为具体的数据类型 欢迎关注问我团队公众号...原创 2016-08-09 10:26:25 · 473 阅读 · 0 评论 -
C++中函数重载,重写,隐藏的区别
函数重载:函数重载的条件: 函数在同一个作用域内。同一个类内的同名函数,或者同一个块区域内的同名函数。 函数名相同 函数的参数列表不同 注意点: const参数和非const参数不算参数列表不同(会产生二义性) 但是&和非&是属于重载。 类成员函数和普通函数一样 代码事例:#include <iostream>...原创 2016-08-09 10:35:29 · 348 阅读 · 0 评论 -
static的作用和理解
作用域是理解static变量和函数的关键,被static修饰的变量和函数他只能被它所在作用域访问(如果获得变量指针也可以操作),不能被它作用域之外被访问,全局静态变量和函数,不能被其他文件使用,本质还是因为 它的作用域只在本文件全局静态变量全局静态变量属性 全局静态变量位于静态存储区,在整个程序运行期间都一直存在,所以只初始化一次 全局静态变量位于内存中bss区,系统会默认为其初始化为...原创 2016-08-09 10:45:50 · 441 阅读 · 0 评论 -
C/C++三种内存分配方式
C/C++编译时内存分为5大存储区:堆区,栈区,全局区,文字常量区,代码区从静态存储区分配: 内存在程序编译时就已经分配好 了,这块内存在程序运行期间都一直存在,全局变量和static修饰的变量 在栈区分配:执行函数时,函数内部局部变量的存储单元都在栈区创建,函数运行结束时这些存储单元都被自动释放,效率高但内存容量有限 在堆上分配内存:程序运行时用malloc和new申请内存,程序员自己负...原创 2016-08-09 10:29:12 · 839 阅读 · 0 评论 -
c语言中sizeof()和strlen()的区别
sizeof是操作符,strlen是c库函数 sizeof的参数可以是变量也可以是数据类型,strlen的参数只能是以"\0"结尾的字符串数组 编译器在编译的时候就计算出了sizeof的大小,而strlen只有在程序运行期间才能计算出字符串长度 sizeof计算的是数据类型在内存中的大小,而strlen计算的是字符串的实际长度 数组做sizeof参数是不退化为指针,做strlen参数则会退...原创 2016-08-09 10:13:49 · 1878 阅读 · 4 评论 -
linux下分散输出和集中输入readv()和writev()
readv(int fd,const struct iovec*iov,int iovcnt);参数fd:打开的文件描述符,从fd中读取数据。参数iov:结构体struct iovec数组,将fd中读取的数据保存到iov结构体数组中,保存的时候从下标为0开始。参数iovcnt:iov结构体的大小。struct iovce的数据结构如下:struct iovec { void *iov_...原创 2018-10-09 07:57:51 · 677 阅读 · 0 评论