c/c++programming
文章平均质量分 75
Relieved
这个作者很懒,什么都没留下…
展开
-
C/C++中的随机函数(3)
一 C++中不能使用random()函数 random函数不是ANSI C标准,不能在g++,vc等编译器下编译通过。可改用C++下的rand函数来实现。 1.C++标准函数库提供一随机数生成器rand,返回0-RAND_MAX之间均匀分布的伪随机整数。 RAND_MAX必须至少为32767。 rand()函数不接受参数,默认以1为种子(即起始值)。 随机数生成器总是以相同的种子开始,所以形成的伪随机数列也相同,失去了随机意义原创 2011-02-25 16:32:00 · 420 阅读 · 0 评论 -
函数名与函数指针
一 通常的函数调用 一个通常的函数调用的例子://自行包含头文件void MyFun(int x); //此处的申明也可写成:void MyFun( int );int main(int argc, char* argv[]){ MyFun(10); //这里是调用MyFun(10);函数 return 0;}voi原创 2011-10-25 09:23:56 · 795 阅读 · 0 评论 -
指针函数与函数指针的区别
1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针 类型标识符 *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。表示:float *fun()原创 2011-10-25 09:25:54 · 795 阅读 · 0 评论 -
C++中的文件输入/输出
简介本教程将以C++最基本的文件I/O(输出/输出)开始。此后,我将从更深入的方面,为你展示一些技巧,并分析给出一些有用的函数。你需要对C++有一个较好的理解,否则这个教程于你而言将是陌生而毫无用处。 你的第一个程序 首先我将给出一段代码,接着再逐行进行解释。我们的第一个程序将建立一个文件,并写入一些字符: #include void main() //程转载 2011-10-26 16:18:16 · 863 阅读 · 0 评论 -
C/C++时间函数使用方法
/C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获取和显示等等的问题。下面,在这篇文章中,笔者将主要介绍在C/C++中时间和日期的使用方法. 通过学习许多C/C++库,你可以有很多操作、使用时间的方法。但在这之前你需要了解一些“时间”和“日期”的概念,主要有以下几个: Coordi转载 2011-11-21 21:59:05 · 927 阅读 · 0 评论 -
预编译
预编译又称为预处理,是做些代码文本的替换工作 处理#开头的指令,比如拷贝#include包含的文件代码,#define宏定义的替换,条件编译等 就是为编译做的预备工作的阶段 主要处理#开始的预编译指令 预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。常见的预编译指令有: (1)#include 指令原创 2011-11-05 21:52:18 · 821 阅读 · 0 评论 -
c/c++中const用法总结
const类型定义:指明变量或对象的值是不能被更新,引入目的是为了取代预编译指令 **************常量必须被初始化*************************cons的作用 (1)可以定义const常量 例如: const int Max=100; int Array[Max];原创 2011-11-05 22:18:09 · 838 阅读 · 0 评论 -
itoa函数及atoi函数
C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。以下是用itoa()函数将整数转 换为字符串的一个例子:# include # include void main (void){int num = 100;char str[25];itoa(num, str, 10);printf("The number 'num'原创 2011-11-06 09:34:22 · 908 阅读 · 0 评论 -
c_str()的用法
函数声明:const char *c_str(); c_str()函数返回一个指向c风格字符串的常量指针(const char*),不能直接直接赋值给char*,可以通过strcpy()函数进行拷贝string s = "1234";char* c = new char[s.length()+1]; //必须要分配内存才行,光声明一个指针是不会分配内存空间的strcpy(c,s.c原创 2011-11-06 11:46:07 · 1127 阅读 · 0 评论 -
C++内联函数(Inline)
(1)什么是内联函数?内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。(2)为什么要引入内联函数?当然,引入内联函数的主要目的是:解决程序中函数调用的效率问题(时间和空间的开销)。另外,前面我们讲到了宏,里面有这么一个例子:#define ABS(x) ((x)>0? (x):-(x))当++i出现时,宏就会歪曲我们的意思,换句话说就是:宏的定义很容易产原创 2011-11-07 20:19:04 · 1091 阅读 · 0 评论 -
C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程原创 2011-11-07 22:15:06 · 947 阅读 · 0 评论 -
C++ link详解
有些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错误信息不能定位到某一行)。或者对语言的一些部分不知道为什么要(或者不要)这样那样设计。了解本文之后,或许会有一些答案。 首先看看我们是如何写一个程序的。如果你在使用某种IDE(Visual Studio,El原创 2011-11-07 20:45:37 · 1628 阅读 · 0 评论 -
随机函数rand()[c++]
一、C++中不能使用random()函数 random函数不是ANSI C标准,不能在gcc,vc等编译器下编译通过。 可改用C++下的rand函数来实现。 1、C++标准函数库提供一随机数生成器rand,返回0-RAND_MAX之间均匀分布的伪随机整数。 RAND_MAX必须至少为32767。rand()函数不接受参数,默认以1为种子(即起始值)。 随机数生成器总是以原创 2011-11-08 12:29:00 · 939 阅读 · 0 评论 -
new动态创建二维数组的方法
1.A (*ga)[n] = new A[m][n];...delete []ga;缺点:n必须是已知优点:调用直观,连续储存,程序简洁(经过测试,析构函数能正确调用)2. A** ga = new A*[m];for(int i = 0; i ga[i] = new A[n];...for(int i = 0; i delete []ga[i];原创 2011-10-20 14:12:36 · 900 阅读 · 0 评论 -
C++拷贝构造函数(深拷贝,浅拷贝)
对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。#include iostream>using n原创 2011-10-18 17:06:28 · 912 阅读 · 0 评论 -
C/C++中的随机函数(2)
<br />C++中的随机数函数<br /><br />C++用的是rand()这个函数是用来产生随机数的,范围从0到RAND_MAX, 在<stdlib.h>中有这样一个定义:<br /><br />#define RAND_MAX 0x7fff //就是32767了<br /><br />如果需要产生n到m范围内的随机整数,可以:<br />int ans=rand()*(m-n)/RAND_MAX+n; <br /><br />如果要产生精度更高、更加均匀的随机数,有一个简单的方法,是把若干15位随机原创 2011-02-25 16:40:00 · 381 阅读 · 0 评论 -
文本文件单词统计的排序树方式实现
<br />现在提供一个排序树的应用。对文本文件的单词数量统计,源代码如下,在vc6.0环境测试通过<br />排序树的基础知识请参见《软件技术基础》电子科技大学出版社<br />#include "stdio.h"<br />#include "stdLib.h"<br />#include "string.h"<br />#include "assert.h"<br />#define MAXWORDLEN 30 /*单词最大字母数量*/<br />typedef struct sort_tree<原创 2011-03-02 14:41:00 · 421 阅读 · 0 评论 -
浅谈C中的malloc和free
在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用——就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以<br /><br />写下这篇文章作为一个对知识的总结。这篇文章之所以命名中有个“浅谈”的字眼,也就是这个意思了!希望对大家有一点帮助!<br /><br />如果不扯得太远的话(比如说操作系统中虚拟内存和物理内存如何运做如何管理之类的知原创 2011-03-04 14:53:00 · 302 阅读 · 0 评论 -
VC++ warning C4786
<br />在使用std::vector的过程中,编译器报了如下的warning: <br /> <br />c:/program files/vc98/include/vector(61) : warning C4786: '??0?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2原创 2011-03-10 16:21:00 · 282 阅读 · 0 评论 -
建立词索引表
<br />indexHeader.h<br />#define MaxBookNum 1000<br />#define MaxKeyNum 2500<br />#define MaxLineLen 500<br />#define MaxWordNum 20<br />#include<iostream><br />using namespace std;<br /><br />typedef int ElemType;<br />typedef struct LNode{<br /> ElemT原创 2011-03-10 16:40:00 · 503 阅读 · 0 评论 -
单链表的原地逆序问题
<br />问题描述:给个单链表,将它原地逆序(不借助其他空间)<br />程序:<br />#include "stdafx.h"<br />#include <iostream><br />using namespace std;<br />typedef struct node{<br /> int data;<br /> struct node *next;<br />}LinkList,*LList;<br />void f(LList head)<br />{<br /> LList pre,原创 2011-05-31 16:20:00 · 524 阅读 · 0 评论 -
_tmain , _tWinMain 与 main, wmain , WinMain ,wWinMain的关系
<br />对于ANSI版本, "_tWinMain "就是 "WinMain ";对于UINCODE版本, "_tWinMain "就是 "wWinMain "。 <br />(比如这样的定义:) <br />#ifdef _UNICODE <br />#define _tmain wmain <br />#define _tWinMain wWinMain <br />#else <br />#define _tmain main <br />#define _tWinM原创 2011-04-25 14:46:00 · 662 阅读 · 0 评论 -
warning C4627: “#include ”: 在查找预编译头使用时跳过
错误如下:1>------ 已启动生成: 项目: HashTest, 配置: Debug Win32 ------1>正在编译...1>HashTest.cpp1>c:/documents and settings/nwy2010/my documents/visual studio 2008/projects/hashtest/hashtest/hashtest.cpp(21) : warning C4627: “#include ”: 在查找预编译头使用时跳过1> 将指令添加到“stdaf原创 2011-04-25 16:49:00 · 15264 阅读 · 5 评论 -
c++输出格式控制
可以不使用#include的cout.precision()设置小数点后精确度,cout.width()设置宽度,cout.setf()设置显示格式,比如cout.setf(ios::left)左对齐cout.setf(ios::showpoint)不管是否有小数位,显示小数点cout.fill();不足宽度则填充,如cout.fill('0');如这次周赛1002,如果使用COUT在输出前要这样设置一下。cout.precision(6);cout.width(8);cout.setf(ios::left原创 2011-04-25 19:15:00 · 1787 阅读 · 0 评论 -
ZeroMemory和memset的联系和区别
<br />ZeroMemory() ZeroMemory宏用0来填充一块内存区域。 <br /> 为了避免优化编译器的意外的影响,请使用SecureZeroMemory函数。 <br /> void ZeroMemory( <br /> PVOID Destination, <br /> SIZE_T Length <br /> ); <br /> 参数: <br /> Destination :指向一块准备用0来填充的内存区域的开始地址。 <br /> Length :准备用0来填充的内原创 2011-04-26 17:40:00 · 1986 阅读 · 0 评论 -
C++中指针和引用的区别
从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不原创 2011-10-18 20:04:39 · 762 阅读 · 0 评论 -
指针常量和常量指针
1. 定义:常量指针是指--指向常量的指针,顾名思义,就是指针指向的是常量,即,它不能指向变量,它指向的内容不能被改变,不能通过指针来修改它指向的内容,但是指针自身不是常量,它自身的值可以改变,从而指向另一个常量。指针常量是指--指针本身是常量。它指向的地原创 2011-10-18 20:38:15 · 1172 阅读 · 0 评论