c/c++学习
文章平均质量分 67
xinanzhung
这个作者很懒,什么都没留下…
展开
-
c++中静态成员函数访问非静态成员变量
开始之前先看一个例子#include using namespace std;class A {public: //void show(int j){x=j;cout void static show(int j){x=j;coutprivate: int x;};int main(){ A b; b.show(10);原创 2013-04-19 10:47:47 · 672 阅读 · 0 评论 -
GitHub详细教程
GitHub详细教程Table of Contents1 Git详细教程 1.1 Git简介 1.1.1 Git是何方神圣?1.1.2 重要的术语1.1.3 索引1.2 Git安装1.3 Git配置 1.3.1 用户信息1.3.2 高亮显示1.3.3 忽略特定的文件1.3.4 使用.gitkeep来追踪空的文件夹1.4 开始操作Git 1转载 2014-04-23 23:17:53 · 543 阅读 · 0 评论 -
C语言sprintf与sscanf函数[总结]
1、前言 我们经常涉及到数字与字符串之间的转换,例如将32位无符号整数的ip地址转换为点分十进制的ip地址字符串,或者反过来。从给定的字符串中提取相关内容,例如给定一个地址:http://www.bokeyuan.cn:2345,我们要从地址中提出协议,主机地址和端口号。之前对字符串和数字之间的关系不是很熟悉,工作中经常涉及到这个,如是好好总结一下。C语言提供了一些列的格式化输入输出转载 2014-04-23 14:55:33 · 688 阅读 · 0 评论 -
seekg()/seekp()与tellg()/tellp()的用法详解
对输入流操作:seekg()与tellg()对输出流操作:seekp()与tellp()下面以输入流函数为例介绍用法:seekg()是对输入文件定位,它有两个参数:第一个参数是偏移量,第二个参数是基地址。对于第一个参数,可以是正负数值,正的表示向后偏移,负的表示向前偏移。而第二个参数可以是:ios::beg:表示输入流的开始位置ios::cur:表示输入流的当前位置io转载 2014-04-23 23:05:56 · 717 阅读 · 0 评论 -
string substr函数
string结构有一个成员函数叫substr()可以用它实现。basic_string::substrbasic_string substr(size_type _Off = 0,size_type _Count = npos) const;功能:从一个字符串复制一个从指定位置开始,并具有指定长度的子字符串。参数 _Off 所需的子字符串的起始位置。字符串中第一个字符的索引为原创 2014-04-24 17:27:14 · 3016 阅读 · 0 评论 -
vs2010 一些error类型及其解决方案
error C2872: 'cout' : ambiguous symbol:模糊不清的标记 :可能cout被定义了多次error LNK2019: 没有包含头文件,或者没有定义函数,或者没有导入库。还有种,当创建一个项目A后,同时生成解决方案后,在此项目上又删除了.H和.CPP文件,重新创建其他的.H和.CPP文件后,再运行也可能出错,因为之前生成A后会在Debug下产生某些文件原创 2014-04-24 11:16:50 · 2521 阅读 · 0 评论 -
在控制台下显示进度
#include #include int main() { const int NUM = 50;//任务完成总量 for (int i = 0; i { //用Sleep()来代替一些费时的操作,如读写文件,大量的运算。 Sleep(2000); //some work to do //输出百分比 printf("%.2lf%%\r", i *转载 2014-05-21 09:27:17 · 644 阅读 · 0 评论 -
C++面试题:介绍一下STL,具体说明STL如何实现vector。
C++面试题:介绍一下STL,具体说明STL如何实现vector。考点:vector的理解与实现细节出现频率:★★★★解析:前面例题已经介绍过了STL,因此这里不再赘述,只说明STL如何实现vector。vector的定义如下: template > class vector { …… };这里省略了中转载 2014-07-15 20:49:20 · 1076 阅读 · 0 评论 -
C语言的头文件是必须的吗?
N年前学习C语言开始,就被老师教导,要记得包含头文件。自己也养成了二话不说就#include的习惯。从来没有静下信来想想,C语言必需要有头文件吗?头文件到底起到什么的作用。 最近一段时间做了一些静态库和动态库相关的东西,一些内容在上一篇博文中,阅读上一篇博文的看官可以看出,我的静态库和动态库都没有对应的头文件,可是我的应用程序调用了库,没有包含头文件,一样是正常地编译执行转载 2014-06-06 15:23:01 · 1279 阅读 · 0 评论 -
*** glibc detected *** double free or corruption (fasttop)
在执行一个程序时,出现如下错误: *** glibc detected *** double free or corruption(fasttop):*** 解决方法: 1.该错误的意思是:对一个地址先后进行两次free()操作就会引起这种错误代码,如果是自己编写的代码,就仔细地检查一下代码; g_free(p=g_malloc(sizeof(i转载 2014-06-06 16:33:09 · 1824 阅读 · 0 评论 -
函数参数的传递 动态内存传递问题(指针的指针)
程序1:void myMalloc(char *s) //我想在函数中分配内存,再返回{s=(char *) malloc(100);}void main(){char *p=NULL;myMalloc(p); //这里的p实际还是NULL,p的值没有改变,为什么?if(p) free(p);}程序2:void myMalloc(转载 2014-07-17 17:51:59 · 765 阅读 · 0 评论 -
double free or corruption的原因(2)
先来段代码: 01#include 02#include 03 04#define DEBUG() printf("lines: %d\n", __LINE__); fflush(stdout);转载 2014-06-08 11:27:33 · 5180 阅读 · 0 评论 -
Visual Studio 2010下配置PC-Lint 9.0i
首先下载PC-Lint安装包,可以到CSDN资源区搜索下载,或者直接到我上传的资源区下载。一、安装过程下载完安装包后可以直接点击pclint9setup.exe进行安装,假设安装目录为(C:\lint)注意:安装完之后可以选择勾选”I want to run the configuration program now",点击finish进入配置向导界面,也可以不勾选进入配置转载 2014-06-11 09:25:36 · 978 阅读 · 0 评论 -
判断有向图是否有环 、环的个数以及环中元素
判断有向图是否有环有三种方法:拓扑排序、深度遍历+回溯、深度遍历 + 判断后退边这里使用 拓扑排序 和 深度遍历 + 回溯判断是不是环。使用 深度遍历 + 判断后退边找出环个数 以及环中元素1、拓扑排序思想:找入度为0的顶点,输出顶点,删除出边。循环到无顶点输出。若:输出所有顶点,则课拓扑排序,无环;反之,则不能拓扑排序,有环使用:可以使用拓扑排序为有向无环转载 2014-05-26 21:10:04 · 4406 阅读 · 0 评论 -
如何将十六进制字符串转换为数字
主要有两个方法,其实都是对现有函数的使用: 方法1: sscanf() 函数名: sscanf 功 能: 从字符串格式化输入 用 法: int sscanf(char *string, char *format[,argument,...]); 以上的 format 为 %x 就是将字符串格式化为 16 进制数 例子: #inc原创 2014-04-23 15:40:11 · 3445 阅读 · 0 评论 -
atoi函数源代码
isspace(int x){if(x==' '||x=='\t'||x=='\n'||x=='\f'||x=='\b'||x=='\r')return 1;else return 0;}isdigit(int x){if(x='0') return 1;x` else return 0;}int atoi(const char *n原创 2014-04-23 11:01:22 · 2236 阅读 · 1 评论 -
经验的秘籍:C语言高效编程四大绝招
编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就是针对编程工作中的一些体会和经验做相关的阐述。 第一招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招–以空间换时间。比如说字符串的赋值: 方法A:通常的办法 #define LEN 32 char string1 [LEN转载 2014-03-21 10:23:37 · 535 阅读 · 0 评论 -
fflush(stdout)的使用
在printf()后使用fflush(stdout)的作用是立刻将要输出的内容输出。 当使用printf()函数后,系统将内容存入输出缓冲区,等到时间片轮转到系统的输出程序时,将其输出。 使用fflush(out)后,立刻清空输出缓冲区,并把缓冲区内容输出。 例如: for (ctr = 1; ctr { printf("."); /* print a dot */ f转载 2013-04-19 21:30:54 · 3081 阅读 · 0 评论 -
判断处理器是大端还是小端
当前的存储器,多以byte为访问的最小单元,当一个逻辑上的地址必须分割为物理上的若干单元时就存在了先放谁后放谁的问题,于是端(endian)的问题应运而生了,对于不同的存储方法,就有大端(big-endian)和小端(little- endian)两个描述。大端格式:在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,小端格式:与大端存储格式相反,在小端存储格转载 2013-05-09 15:39:20 · 1809 阅读 · 0 评论 -
如何读取txt文件内容
读取txt文件内容有很多种方法,本文只简单介绍下使用ifstream和getline怎么样读取文件内容。第一种方法:逐词读取, 词之间用空格区分void ReadDataFromFileWBW(){ ifstream f("data.txt"); string s; while( f>> s ) { c原创 2013-09-14 09:33:12 · 2294 阅读 · 0 评论 -
c语言中堆栈的简单理解
堆栈有着很大的区别,主要表现在以下几个方面:1、申请方式: stack:栈由系统自动分配,比如函数中定义的一个局部变量,系统会自动在栈中为其开辟空间 heap:堆需要程序员自己申请,并指明大小,比如在c语言中用malloc函数,在c++中用new函数等,需要注意的是如p= (char *)malloc(10); 其中p本身是在栈中的。2、申请后系统反应 栈:原创 2013-11-01 17:36:42 · 1059 阅读 · 0 评论 -
c语言中动态内存申请与释放的简单理解
在C里,内存管理是通过专门的函数来实现的。与c++不同,在c++中是通过new、delete函数动态申请、释放内存的。1、分配内存 malloc 函数 需要包含头文件:#include 或#include 函数声明(函数原型):void *malloc(int size); 说明:malloc 向系统申请分配指定size个字节的内存空间。返回类型是 voi原创 2013-11-01 22:37:35 · 1289 阅读 · 0 评论 -
传值调用与传地址调用(传引用)
C/C++中参数传递有两种方式,传值或传地址(传引用),通常我们要在被调用函数中改变一个变量的值就需要传地址调用方式,例如:void swap_by_value(int a, int b){int temp;temp = a;a = b;b = temp;}void swap_by_ptr(int* pa, int* pb){int temp;temp转载 2013-12-30 14:48:47 · 770 阅读 · 0 评论 -
C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别
1.C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。从作用域看:1>全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量。2>静态局部变量具有局部作用域,它只被初始化一转载 2013-12-19 11:13:34 · 572 阅读 · 0 评论 -
strcpy和memcpy的区别
strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。转载 2014-01-09 19:03:08 · 588 阅读 · 0 评论 -
C语言中volatile关键字的作用
一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:转载 2013-12-25 19:23:13 · 530 阅读 · 0 评论 -
map文件的使用
开始接触MAP文件是在学习DSP时,后来发现微软PC下也存在MAP文件,所以查资料了解了下,记录一下方便大家和自己查看。 首先说下TI DSP中的MAP文件: MAP文件是CCS软件编译后产生的有关DSP用到所有程序、数据及IO空间的一种映射文件。一、生成方法 MAP文件主要有两种生成方法,一种是由系统自动生成,默认文件名为所建立的项目名(如XXX为项目名)加上.m原创 2014-02-25 16:15:00 · 4087 阅读 · 0 评论 -
new和malloc
学过C++和C语言的一般都会对编程语言中的内存分配有点小困惑,malloc和new到底有哪些巨细的差别?一些同学问过这相似的问题,彭刚老师上课也讲过。我总结整理了一下,希望看过本文能明白,现将区别罗列如下:1、malloc与free是C++/C语言的内存分配标准库函数,属于stdlib库;new/delete是C++的操作运算符。它们都可用于申请动态内存和释放内存。 2、 对于非内转载 2014-03-17 09:32:48 · 499 阅读 · 0 评论 -
C++ 输入输出文件操作
文件 I/O 在C++中比烤蛋糕简单多了。 在这篇文章里,我会详细解释ASCII和二进制文件的输入输出的每个细节,值得注意的是,所有这些都是用C++完成的。 一、ASCII 输出 为了使用下面的方法, 你必须包含头文件(译者注:在标准C++中,已经使用取代,所有的C++标准头文件都是无后缀的。)。这是 的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, 已经被包含了,转载 2014-04-30 09:11:08 · 624 阅读 · 0 评论 -
C/C++中extern关键字详解
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C+转载 2014-04-30 11:17:43 · 511 阅读 · 0 评论 -
linux下生成和使用动态库
网上看了些资料,感觉有些不对啊,mosuo原创 2014-05-27 22:37:25 · 542 阅读 · 0 评论