C/C++语言
文章平均质量分 75
剑西楼
一剑西来
展开
-
如何将二维数组作为函数的参数传递
如何将二维数组作为函数的参数传递声明: 如果你是得道的大侠,这篇文章可能浪费你的时间,如果你坚持要看,我当然感觉很高兴,但是希望你看完了别骂我!如果你发现我这篇文章有错误的话,你可以提出批评以及指正,我将很乐意地接受。*_*概述: 今天写程序的时候要用到二维数组作参数传给一个函数,我发现将二维数组作参数进行传递还不是想象得那么简单里,但是转载 2013-04-29 17:52:45 · 1128 阅读 · 0 评论 -
c++异常处理机制示例及讲解
这两天我写了一个测试c++异常处理机制的例子,感觉有很好的示范作用,在此贴出来,给c++异常处理的初学者入门。本文后附有c++异常的知识普及,有兴趣者也可以看看。 下面的代码直接贴到你的console工程中,可以运行调试看看效果,并分析c++的异常机制。 #include "stdafx.h" #include #i转载 2014-04-20 11:47:35 · 1113 阅读 · 0 评论 -
C++异常处理机制详解
C++异常处理机制详解(2012-04-15 22:24:56)异常处理是一种允许两个独立开发的程序组件在程序执行期间遇到程序不正常的情况(异常exception)时相互通信的机制。本文总结了19个C++异常处理中的常见问题,基本涵盖了一般C++程序开发所需的关于异常处理部分的细节。 1. throw可以抛出哪些种类的异常对象?如何捕获?1)异常对象通常是一个c转载 2014-04-20 11:53:08 · 1217 阅读 · 0 评论 -
C语言文件操作函数大全
clearerr(清除文件流的错误旗标) 相关函数 feof表头文件 #include 定义函数 void clearerr(FILE * stream); 函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。 返回值 fclose(关闭文件) 相关函数 close,fflush,fopen,setbuf 表头文件 #includ转载 2014-04-07 10:46:07 · 761 阅读 · 0 评论 -
va_start、va_end、va_list的使用
1:当无法列出传递函数的所有实参的类型和数目时,可用省略号指定参数表void foo(...);void foo(parm_list,...); 2:函数参数的传递原理函数参数是以数据结构:栈的形式存取,从右至左入栈.eg:#include void fun(int a, ...){int *temp = &a;temp++;for (i转载 2014-04-07 15:56:55 · 775 阅读 · 0 评论 -
用GDB调试程序
GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的程序,可转载 2014-04-07 16:57:41 · 659 阅读 · 0 评论 -
C/C++中的运算符优先级总结
C语言中的运算符说明运算符结合性初等运算符() [] -> .->单目运算符! ~ ++ -- - (类型) * & sizeof算术运算符* / %->算术运算符+ -->移位运算符>->转载 2014-04-22 12:17:39 · 900 阅读 · 0 评论 -
有关fwrite语句的用法
一:函数名: fwrite 功 能: 写内容到流中 用 法:fwrite(buffer,size,count,fp); (1)buffer:是一个指针,对fwrite来说,是要输出数据的地址。 (2)size:要写入的字节数; (3)count:要进行写入size字节的数据项的个数; (4)fp:目标文件指针。 程序例:#include std转载 2014-04-09 11:33:43 · 5631 阅读 · 0 评论 -
Linux下nm和ldd 命令
1. Linux nm 命令nm [‘-a’|‘--debug-syms’] [‘-g’|‘--extern-only’][‘-B’] [‘-C’|‘--demangle’[=style]] [‘-D’|‘--dynamic’][‘-S’|‘--print-size’] [‘-s’|‘--print-armap’][‘-A’|‘-o’|‘--print-file-name’][‘-转载 2014-04-10 17:04:46 · 1128 阅读 · 0 评论 -
C/C++中extern关键字详解
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而转载 2014-04-10 14:08:21 · 650 阅读 · 0 评论 -
cin、cin.get()、cin.getline()、getline()、gets()函数的用法
1、cin>> 用法1:最基本,也是最常用的用法,输入一个数字:#include using namespace std;main (){int a,b;cin>>a>>b;cout}输入:2[回车]3[回车]输出:5用法2:接受一个字符串,遇“空格”、“TAB”、“回车”都结束#include usin转载 2014-05-11 18:17:03 · 767 阅读 · 0 评论 -
string::npos
string::npos |字号 订阅The string class provides six search functions, each named as a variant of find. The operations all return a string::size_type value that is the index of wh转载 2014-05-12 17:05:20 · 972 阅读 · 0 评论 -
setjump和longjump
int setjmp( jmp_buf env );void longjmp( jmp_buf env, int value ); # setjmp(j)设置“jump”点,用正确的程序上下文填充jmp_buf 对象j。这个上下文包括程序存放位置、栈和框架指针,其它重要的寄存器和内存数据。当初始化完jump 的上下文,setjmp()返回0 值。对setjmp函数的调用时,转载 2014-04-27 09:16:39 · 998 阅读 · 0 评论 -
C++的四种强制类型转换
C++的四种强制类型转换,所以C++不是类型安全的。分别为:static_cast , dynamic_cast , const_cast , reinterpret_cast为什么使用C风格的强制转换可以把想要的任何东西转换成合乎心意的类型。那为什么还需要一个新的C++类型的强制转换呢?新类型的强制转换可以提供更好的控制强制转换过程,允许控制各种不同种类的强制转换。C++中风格是stat转载 2014-04-27 09:51:28 · 720 阅读 · 0 评论 -
虚函数表
虚函数 C++中的虚函数的实现一般是通过虚函数表(C++规范并没有规定具体用哪种方法,但大部分的编译器厂商都选择此方法)。类的虚函数表是一块连续的内存,每个内存单元中记录一个JMP指令的地址。注意的是,编译器会为每个有虚函数的类创建一个虚函数表,该虚函数表将被该类的所有对象共享。类的每个虚成员占据虚函数表中的一行。如果类中有N个虚函数,那么其虚函数表将有N*4字节的大小。虚函转载 2014-04-27 09:31:05 · 715 阅读 · 0 评论 -
按位与、或、异或等运算方法
按位与运算符(&)参加运算的两个数据,按二进制位进行“与”运算。运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1; 即:两位同时为“1”,结果才为“1”,否则为0例如:3&5 即 0000 0011 & 0000 0101 = 0000 0001 因此,3&5的值得1。 另,负数按补码形式参加按位与运转载 2014-03-25 15:01:03 · 825 阅读 · 0 评论 -
switch变量的作用 域问题
switch是我们做条件选择时,经常用到的一个语句。一直以来对于他的使用相信大家也都是得心应手,前几天在linux下写一个c++程序时遇到了这样的一个问题,请看例子:#includeusing namespace std;int main(){ int i; cout cin >> i; switch(转载 2014-05-05 12:06:28 · 1577 阅读 · 0 评论 -
原码, 反码, 补码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式转载 2014-03-24 10:55:20 · 750 阅读 · 0 评论 -
true,false组合问题
题目:给定n个布尔变量x1,x2,x3…xn,希望输出所有可能的布尔变量组合。例如当n=2时,有4种组合:a、true,true;b、true,faulse;c、faulse,true;d、faulse,faulse。请编写一个C++程序实现这个任务。算法:递归代码:#includeusing namespace std;bool a[1000];int n;voi原创 2013-05-04 20:42:07 · 1980 阅读 · 0 评论 -
c函数scanf(),printf()等常用格式字符串
%d 短整形,一般占两个字节%u 无符号短整形%ld 长整形,一般占四个字节%c 字符型%s 字符串主要用在输入输出函数:scanf(),printf()里/a:蜂鸣,响铃 /b:回退:向后退一格 /f:换页 /n:换行,光标到下行行首 /r:回车,光标到本行行首 /t:水平制表 /v:垂直制表 //:反斜杠 /':单转载 2013-06-07 11:40:32 · 1783 阅读 · 0 评论 -
自定义C++异常处理
例1:自定义一个继承自excepton的异常类myExceptionC++标准中,定义在中的任何异常类都派生自exception Class,本例也只是简单地由exception继承,在try段抛出一个异常并捕捉。代码如下:/*++ test.cpp version:1.0 decript:define a exception class named myExcep转载 2014-04-29 16:20:02 · 1140 阅读 · 0 评论 -
scanf中的%[^\n]%*c格式
scanf 语法: #include int scanf( const char *format, ... ); 类似函数有 int scanf(const char *format, ...); int fscanf(FILE *stream, const char *format, ...);//指定输入流 int ssc转载 2014-03-30 09:55:39 · 11715 阅读 · 2 评论 -
c++ 异常处理
c++ 异常处理译自 c++ complete refrence 3rd Chapter 38标准c++库定义了两个与异常相关的库,和。异常通常用来报告错误。定义了与异常处理相关的类,声明和函数。class exception {public:exception() throw();exception(const char *转载 2014-04-29 16:40:20 · 821 阅读 · 0 评论 -
vim基本设置
vim基本配置:包括tab键替换成4个空格Edit Vim configuration file ".vimrc" in your HOME directory, add below lines:[plain] view plaincopyset et set ci set sw=4 set ts=4转载 2014-03-30 19:26:19 · 1743 阅读 · 0 评论 -
c++中new和delete的使用方法
new和delete运算符用于动态分配和撤销内存的运算符new用法: 1. 开辟单变量地址空间 1)new int; //开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.int *a = new int 即为将一个int类型的地址赋值给整型指针a. 2)int *a =转载 2014-04-16 20:26:54 · 769 阅读 · 0 评论 -
怎样花两年时间去面试一个人
Joel Spolsky曾经感叹:招聘难,难于上青天(此处笔者稍加演绎:))。他有两个辛辣但不乏洞察力的断言:真正的牛人也许一辈子就投大概4次简历,这些家伙一毕业就被好公司抢走了,并且他们的雇主会给他们不赖的待遇,所以他们也不想挪窝。(刚刚去世的Dennis Ritchie就是这样一个人)而“人才”市场上能找到的大多都不是什么人才。招到这帮人轻则费钱重则把你公司搞挂。(当我把这篇文章给转载 2014-04-01 21:51:01 · 763 阅读 · 0 评论 -
C++的营养
上一篇《C++的营养——RAII》中介绍了RAII,以及如何在C#中实现。这次介绍另一个重要的基础技术——swap手法。swap手法 swap手法不应当是C++独有的技术,很多语言都可以实现,并且从中得到好处。只是C++存在的一些缺陷迫使大牛们发掘,并开始重视这种有用的手法。这 个原本被用来解决C++的资源安全和异常保证问题的技术在使用中逐步体现出越来越多的应用,有助于我转载 2014-04-16 22:39:04 · 815 阅读 · 0 评论 -
C89与C99标准比较
1、增加restrict指针C99中增加了公适用于指针的restrict类型修饰符,它是初始访问指针所指对象的惟一途径,因此只有借助restrict指针表达式才能访问对象。restrict指针指针主要用做函数变元,或者指向由malloc()函数所分配的内存变量。restrict数据类型不改变程序的语义。如果某个函数定义了两个restrict指针变元,编译程序就假定它们指向两个不同的转载 2014-03-22 17:45:47 · 1040 阅读 · 0 评论 -
C语言中输入输出格式控制
1、C语言中,非零值为真,真用1表示;零值为假,假用0表示。2、转义字符参考:\a蜂鸣,响铃 \b回退:向后退一格\f换页 \n换行\r回车,光标到本行行首 \t水平制表\v垂直制表转载 2014-03-22 20:32:14 · 2147 阅读 · 0 评论 -
static函数与普通函数区别
static函数与普通函数区别全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效,转载 2014-05-04 19:42:26 · 1761 阅读 · 0 评论 -
约瑟夫环
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。分析:有n个人,要想所有的人都退出去,只有每个人喊到m,才可以退完,所以可以算出,n*m为所有人总共报数的总次数。代码:/* * 约瑟原创 2014-04-03 20:33:51 · 918 阅读 · 0 评论 -
C语言main()函数详解
C的设计原则是把函数作为程序的构成模块。main()函数称之为主函数,一个C程序总是从main()函数开始执行的。一、main()函数的形式在最新的 C99 标准中,只有以下两种定义方式是正确的:int main( void ) /* 无参数形式 */{ ... return 0;}int main( int argc, char *argv[转载 2014-04-04 10:50:53 · 1156 阅读 · 0 评论 -
C语言itoa()函数和atoi()函数详解(整数转字符C实现)
C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。1.int/float to string/array:C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明。● itoa():将整型值转换为字符串。● ltoa():将长整型值转换为字符串。● ultoa():将转载 2014-05-14 20:48:34 · 1152 阅读 · 0 评论