自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

所有内容都已迁移到 https://huqijun.org

所有内容都已迁移到 https://huqijun.org

  • 博客(26)
  • 收藏
  • 关注

原创 C++ 几种刷新输出缓冲区方式

一下几种情况会导致缓冲区内容被刷新,即写入到真实的输出设备或者文件:1. 程序正常接收, 作为main 返回工作的一部分,将情况所有输出缓冲区;2. 一些不确定的时候,缓冲区可能已满;3. 使用manipulator 显示属性缓冲区, 比较常用的是endl, flush, ends:coutcoutcout4. 使用unitbuf 设置流的内部状态, 适

2015-09-30 00:14:33 8881 1

原创 C++中直接把cin 输出的结果是什么

如题,如下代码:=====================================================#includeusing namespace std;int main(){cout}======================================================上面

2015-09-29 23:21:33 481

原创 C++:函数指针与函数引用

C++中主要有两类名字, 变量名和函数名(还有类名和结构体名等等)。 名字或者标识符要能唯一代表某一段内存区域。变量可以通过变量名,指针,引用几种方式直接或者间接的访问,类型的函数也可以通过函数名,函数指针,函数引用几种方式访问。1.通过函数名访问void fuck(int a);int main(){fuck(3);return 0

2015-09-27 23:41:03 3684 2

原创 C++ 之内联(inline)函数

返回两个string 中 较短的一个:const string & shorterString(const string & s1, const string & s2){ return s1.size()}为这样小操作定义函数的好处是:1. 阅读和理解函数名比等价的表达式容易;2. 统一修改:只用修改一处函数,比找出所有表达式容易;但也缺点

2015-09-27 21:25:56 259

原创 C++之全局对象,局部对象,静态局部对象

先说两个概念:作用域(scope) 和生命周期(lifetime)作用域: 名字的作用域指的是知道该名字的程序文本区域生命周期:对象的生命周期指在程序执行过程中对象存在的时间全局对象, 顾名思义是全局的对象,其作用域是整个程序文本,其对象的声明周期是整个程序的执行过程;局部对象: 一般说的局部变量都指的是动态局部变量,包括形参,某个语句块中定义的变量等。 动态局部变量是自

2015-09-27 20:05:25 1871

原创 C++函数的声明,实现和默认实参

函数和变量都应该先声明再使用,在C++中。 声明和定义可以分开, 一般声明都在.h 文件中, 实现都放在.cpp 文件中。函数声明中的形参名会被忽略, 及即函数声明时可以不写形参名eg.void print(int * , int);默认实参是在形参列表中指定参数的默认值, 在调用包含默认实参的函数时, 若提供了实参,则会覆盖默认值; 若未提供实际参数,则使

2015-09-27 19:29:07 413

原创 main函数的参数:处理命令行选项

函数都有参数, main函数也不例外。一般我们使用的main 函数只有空的形参数表:int main(){return 0;}实际上main函数也是可以处理传进来的参数, 通过命令行选项的方式可以将参数传给main 函数此时main 函数是如下定义的:int main(int argc , char * argv[] ){re

2015-09-27 10:49:25 1495

原创 C++之安全使用数组的4中方法

数组有两个特质:1. 不能复制(有些编译器将数组复制作为编译器扩展)2. 使用数组名时,自动将其转为为指向数组第一个元素的指针(隐式类型转换)上面两个特征决定了处理数组的函数通常通过指向数组元素的指针来处理数组内容一下几个数组形参定义是等价的:1. void fuck(int *p);2. void fuck(int p[]);3. void f

2015-09-27 00:41:35 488

原创 C++: 函数返回非引用类型与返回引用类型

函数的返回过程和参数传递过程是相对称的两个的过程。参数传递从调用函数向被调用函数传递, 返回值从被调用函数向调用函数返回。有与传递方式的区别(拷贝副本与传递本身), 函数形参可以分为引用形参和非引用形参; 类似的,函数返回值也可以分为非引用类型返回值和引用类型返回值, 二者的差异和引用形参和非引用形参类型。当函数返回非引用类型是,返回值的拷贝副本用来初始化在函数调用处创建的临时

2015-09-26 23:52:29 463

原创 C++ 引用形参和指针形参

从引用形参和非引用形参的区别来看,似乎任何时候使用引用形参都指针好, 既少了实参到形参拷贝的开消,也同样可以操作(非const )实参。那指针形参有没有什么优点呢?1. 指针形参比引用形参更能清晰的向函数调用者表明函数可能会修改实参数void f1(int * a);void f2(int &a);int main(){ int b=1

2015-09-26 12:48:18 1456

原创 C++函数引用形参和非引用形参

C++中函数的形参主要有两种类型: 非引用形参和引用形参, 对应两种不同的参数传递方式。void f(int t);void f(int &t);非引用行参是实参的一个副本, 故对非引用形参的修改不会影响实参;引用形参是实参的别名,故对引用形参的修改其实就是修改实参;两者的主要区别是:1. 非引用形参在函数调用是,有从实参copy 到形参的拷贝开销, 在拷贝一些比

2015-09-18 23:26:12 2558

原创 C++ 之初探异常处理(exception)

// dail_test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include#include#include#include#includeusing namespace std;int _tmain(int argc, _TCHAR* argv[]){

2015-09-16 22:52:37 667 2

原创 C++ 基础调试手段

int main(){ string str1, str2; while(cin>>str1>>str2) { assert(str1 =="hello"); ; #ifndef NDEBUG cout<<"FILE "<<__FILE__<<end...

2015-09-11 00:09:35 478

原创 C++ 中while 比较少见的一种形式

#include<iostream>using namespace std;int main(){ string str1, str2; while(cin>>str1>>str2) { ; #ifndef NDEBUG cout<<"test"<<e...

2015-09-10 23:56:19 704

原创 C++ 中switch 使用注意事项

C++ switch 注意事项:1. switch 的目的是更方便的是实现深层嵌套的if /else 逻辑;2. switch 执行顺序是从唯一匹配的标号开始依次执行各语句,直到switch 结束或break 语句为止。 一般使用switch 时, case 中不要遗漏break ;3. default 语句是必要的,哪怕没有语句需要在default 下执行, 可以使用d...

2015-09-10 00:16:41 2028

原创 C++ switch 奇特用法

int vowelCnt = 0// .....switch(ch){case 'a':case 'e':case 'i':case 'o':case 'u':++vowelCnt;break;}上述例子等价于:switch(ch){ case 'a': case 'e': case 'i' : case 'o' :...

2015-09-09 23:01:22 1492

原创 C++ 奇葩的空语句

#include<iostream>using namespace std;int main(){ ;;;;;;;; ;;; ;; ; return 0;}====================================C++中允许存在空语句, int i;;;; 很容易让人以为是非法语句····...

2015-09-08 23:30:49 1585

原创 C++中规定了求值顺序的操作符

C++ 中规定了求值顺序的操作符有以下4个:1. && :左操作数不能确定表达式的值,才需要计算右操作数2. || : 左操作数不能确定表达式的值,才需要计算右操作数3. ?: ( cond ? expr1:expr2) cond 为真时, 计算expr1 ; cond 为假时计算 expr24. , 逗号表达式从左到右计算, 结果是最右边的...

2015-09-04 21:43:47 1386

原创 C++ 内置类型在 i5 ,x64 机器上占用的长度

更多关于编程语言, 数据库,算法等精品内容, 请访问我的个人博客 huqijun.orgint main(){ cout<<" the size of int :"<<sizeof(int)<<endl; cout<<" the size of short :"<<sizeof(short)<&lt...

2015-09-04 20:31:53 386

原创 C++ 唯一三元操作符: 条件操作符?

更多关于编程语言, 数据库,算法等精品内容, 请访问我的个人博客 huqijun.org条件操作符格式为:cond ? expr1: expr2;先计算cond 值, 若cond 为真,则 计算expr1 ,若cond 为假,则计算expr2作用: 将简单的if-else 嵌入表达式中最常用的例子:返回两个数中较大的:int max = i&gt...

2015-09-04 20:02:05 827

原创 为什么C++ 不叫++C?

更多关于编程语言, 数据库,算法等精品内容, 请访问我的个人博客 huqijun.org这是一个叫人眼前一亮的题目, 在让人熟悉自增操作前置和后置两种形式时,也可以了解下C++ 的命名来历。自增(++)操作符有前置和后置两种形式,其区别如下:++i , 返回的是左值, 是i 加1 后 i 这个对象本身i++ , 返回的是右值, i 这个对象会加1 ,但返回的...

2015-09-04 17:55:35 824

原创 使用数组初始化vector

更多关于编程语言, 数据库,算法等精品内容, 请访问我的个人博客 huqijun.org#include<iostream>using namespace std;int main(){ int a[]={0,1,2,3,4,5}; vector<int> t(a,a+6); for(vector<int>::i...

2015-09-04 10:29:37 751

原创 C++中字符数组处理可变长字符串

更多关于编程语言, 数据库,算法等精品内容, 请访问我的个人博客 huqijun.org#include<iostream>#include<string>using namespace std;int main(){ size_t arry_size = 10; char * p_str = new char[arry_si...

2015-09-04 10:16:46 2620

原创 C++ 中使用字符数组来存放未知长度的字符串

更多关于编程语言, 数据库,算法等精品内容, 请访问我的个人博客 huqijun.org#include<iostream>#include<string>using namespace std;int main(){ size_t arry_size = 10; char * p_str = new char[arry...

2015-09-04 10:07:09 6995

原创 string 字符串比较以及c风格字符串比较

更多关于编程语言, 数据库,算法等精品内容, 请访问我的个人博客 huqijun.org#include<iostream>#include<string>using namespace std;int string_compare(string & s1, string & s2){ if(s1 == ...

2015-09-03 22:55:01 520

原创 for 语句头中多个定义

更多关于编程语言, 数据库,算法等精品内容, 请访问我的个人博客 huqijun.org可以在for 语句的init-statement 在中定义多个对象,但只能有一个语句,故定义的所有对象必须是同一类型eg :for(int i =0 , j =0; i< 40 ; i++ ,j++)正确,在for 语句头定义同为int 型的i,jf...

2015-09-03 16:41:07 765

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除