
c++
lssxlh
耐心
展开
-
理解typedef
对typedef不太熟,今天终于弄清楚了,所以发表此帖,希望对不太清楚的朋友能有所帮助。 首先请看看下面这两句: typedef int a[10]; typedef void (*p)(void); 如果你能一眼就看出它们的意思,那请不要再往下看了。如果你不太理解,或概念还有些模糊,请继续往下看吧。 下面的东西我就直接把人家的东西粘上去吧。自己敲太慢了。呵呵。 原文(摘录): typedef用来原创 2009-10-17 10:57:00 · 362 阅读 · 0 评论 -
函数指针与typedef
关于C++中函数指针的使用(包含对typedef用法的讨论) (一)简单的函数指针的应用。//形式1:返回类型(*函数名)(参数表) char (*pFun)(int); char glFun(int a){ return;} void main() { pFun = glFun; (*pFun)(2); } 第一行定义了一个指针变量pFun。首先我们根据前面提到转载 2009-11-27 19:51:00 · 245 阅读 · 0 评论 -
字符串常量的值就是字符串的基地址
C语言中的字符串实际上就是char类型的一维数组。按照约定,C的字符串是以字符串结束标志/ 0 (或null)结尾的。null字符就是所有位均为 0 的字符。因此,它的十进制值是 0 。由于字符串的处理具有它自己的方式,因此我们把它当作一个独立的主题。把字符串看成是长度可变,由/ 0 定界、但最大长度不超过字符串本身长度的这种观点是非常有用的。字符串的长度必须包含存储结尾的/ 0 字符所需要的原创 2010-01-20 21:45:00 · 1343 阅读 · 0 评论 -
C和C++程序员学习历程
如何学习C和C++才不茫然,才不是乱学,想了一下,这里给出一个总的回复。 一家之言,欢迎拍砖哈。 1、可以考虑先学习C. 大多数时候,我们学习语言的目的,不是为了成为一个语言专家,而是希望成为一个解决问题的专家。做一个有用的程序员,做一个赚钱的程序员。我们的价值,将体现在客户价值上,而不是语言写得好不好看。 C++是C的一个面向对象的解释,C++为C扩充了大规模工程应用,复杂转载 2009-11-26 22:09:00 · 368 阅读 · 0 评论 -
typedef用法
typedef用法typedef用法 typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typedef 能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的可维护性。 typedef 使用最多的地方是创建易于记忆的类型名,用它来归档程序员的意图。类型出转载 2009-11-27 19:27:00 · 340 阅读 · 0 评论 -
对__declspec(dllexport)的理解
declspec=declaration+spec=声明+规格dllport=dll+port=(dynamic link library)+port=动态链接库+输出 表示这个函数是一个从DLL导出的函数,一般写在DLL应用程序源代码中 _declspec(dllexport)语句是告诉编译器,在制作dll文件时,要导出的函数名或变量原创 2009-11-27 13:49:00 · 1162 阅读 · 0 评论 -
如何理解DLL中的extern "C"
在DLL的设计中中,,如果使用C++开发,通常在导出函数的定义中使用extern "C",为什么呢?因为当用户使用"运行时动态链接"的时候将使用GetProcAddress函数得到导出函数的地址,该函数是通过导出函数的函数名定位导出函数的,而C++编译器因为函数重载的原因会对开发者定义的函数名进行修饰,导致导出表中的函数名通常不是开发者使用的函数名,比如函数ExportedFn可能被修饰成??原创 2009-11-30 00:48:00 · 1017 阅读 · 0 评论 -
VC中编写Non MFC DLL的方法总结
以下为我学习编写DLL的一些总结,其中包括一些来自互联网(包括一些例子),感谢作者的帮忙。下面提到的例子都经过编程测试通过。VC中编写Non MFC DLL的方法总结一、LIB: extern "C" int add(int x,int y); //声明为C编译、连接方式的外部函数 1.1 在程序中如何引入lib.h:1)#pragma comment( lib, ".转载 2009-11-30 00:57:00 · 478 阅读 · 0 评论 -
Vc编写和调用Dll的简单例子
用Visual Sudio 6.0新建一个工程,工程的类型选择Win32 Dynamic-Link Library.工程名任意,其他所有选项取默认新建一个cpp文件,代码如下:int add(int a ,int b){ return a+b;} 如果工程类型是Win32 Console Application,那么在编译链接以后,会产生一个Debug转载 2009-11-27 16:42:00 · 9132 阅读 · 3 评论 -
c用api调用对话框
#include int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ){ OPENFILENAME o原创 2009-12-25 15:57:00 · 584 阅读 · 0 评论 -
自增和自减的区别
/*2010-04-22 15:00:50*/#include int main(int argc, char *argv[]){ int i,j,k,m; i = j = 3; k = i++; m = ++j; printf("i=%d,j=%d,k=%d,m=%d/n",i,j,k,m); return 0;}/* 在VC原创 2010-04-22 15:14:00 · 351 阅读 · 0 评论 -
c语言支持bool类型吗?
<br />ANSI C编译系统在给出逻辑运算结果时,以数值1代表 "真 ",以0代表 "假 ",但在判断一个量是否为 "真 "时,以0代表 "假 ",以非0代表 "真 "。<br /> <br />c没有这个类型,不过可以自己定义一个。<br /> <br />① typedef enum{false,true} bool;<br /> <br />②typedef int bool; <br />const bool true=1,false=0;<br /> <br />③原创 2011-02-22 15:26:00 · 603 阅读 · 0 评论 -
int main(int argc,char* argv[])详解
argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 命令行后面跟的用户输入的参数,比如: int main(int argc, char* argv[]) { int i; for (i = 0; i<argc; i++)转载 2009-11-26 21:56:00 · 303 阅读 · 0 评论 -
以私有方式派生出来的子类,父类的公有和保护成员都是私有的
#include using namespace std;class Father{public: void room();};void Father::room(){ cout<<"父亲的大房子,我可以享受。"<<endl;}class Son:private Father{public: void enjoy();//父类成员原创 2009-11-26 08:34:00 · 368 阅读 · 0 评论 -
rand()和srand()产生随机数的一些研究
用rand()和srand()产生伪随机数的方法总结---------------------------------标准库(被包含于中)提供两个帮助生成伪随机数的函数: 函数一:int rand(void);//整数型 取随机数()从srand (seed)中指定的seed开始,返回一转载 2009-10-21 20:03:00 · 885 阅读 · 0 评论 -
time(0) 是什么意思?
time(0)返回的是系统的时间(从1970.1.1午夜算起),单位:秒#include #include using namespace std;void main(){ int a; a=time(0);//time(0)返回的是系统的时间(从1970.1.1午夜算起),单位:秒 cout<<a<<endl;} time()参数一般为0或者Nu原创 2009-10-21 20:50:00 · 9384 阅读 · 0 评论 -
十六进制数互相转换
十六进制数互相转换 二进制和十六进制的互相转换比较重要。不过这二者的转换却不用计算,每个C,C++程序员都能做到看见二进制数,直接就能转换为十六进制数,反之亦然。我们也一样,只要学完这一小节,就能做到。首先我们来看一个二进制数:1111,它是多少呢?你可能还要这样计算:1 * 20 + 1 * 21 + 1 * 22 + 1 * 23 = 1 * 1 + 1 * 2 + 1转载 2009-10-23 10:21:00 · 698 阅读 · 0 评论 -
通过指针动态分配内存---一个学生管理的简单程序
#include using namespace std;int main(){ //定义一个指针,用于管理一定范围的学生成绩 float *pScore;//score:成绩 //总成绩,平均成绩 float total_score=0,average; //要求用户输入学生总数 int total_student;//学生总数 cout<<原创 2009-11-05 08:34:00 · 491 阅读 · 0 评论 -
C语言中字符数组和字符串指针分析
C语言中字符数组和字符串指针分析 这几天搞Unix上的C程序,里面用到了很多字符数组和字符串指针,我记得在学完C语言后相当一段时间里,对指针这个东西还是模模糊糊,后来工作也没怎么用到过C,虽然网上这类的文章也有很多,还是决定自己在这做个小总结,也算加深下自己的印象,写了下面的测试程序:#include int main(int argc, char *argv[]){转载 2009-11-05 10:56:00 · 309 阅读 · 0 评论 -
2分查找
2分查找的注意事项:1.数组必须是排好序2.如果数组中有两个以上的相同数据,则查找不准备 #include using namespace std;//声明一个2分查找函数//返回值:如果数组中有个数就返回他的下标,如果没有这个数就返回数组长度//参数(要查找的数,在那个数组中查找,数组大小)int find(int,int [],int total);原创 2009-11-04 13:33:00 · 248 阅读 · 0 评论 -
求最大值
#include using namespace std;/*求最大值思路:1、用一个数n表示最大值2、假设第一个数就是最大值,把第一个数赋值给n3、把n和下一个数比较,如果n比下一个数小,就把下一个数赋值给n4、重复第3步,直到没有下一个数*/int main(){ int a[]={4,3,5,1,2}; int n=a[0]; int c原创 2009-11-06 13:12:00 · 267 阅读 · 0 评论 -
递归求梦幻西游合宝石个数
在梦幻西游里合宝石的规律如下宝石级数所需宝石个数11223448516 设宝石的级数为n 那么它的所需宝石个数就是f(n),观察上表,我们发现n级宝石所需的宝石数是n-1级宝石所需宝石数的2倍,得出如下公式:n=1 f(n)=1n>1 f(n)=f(n-1)*2代码原创 2009-11-06 20:06:00 · 1678 阅读 · 0 评论 -
用2维数组统计比赛结果
A B C D 4个学校举行足球比赛,比赛采用单循环,即一共6场比赛,比分如下:A对B为2:1,A对C为1:4,A对D为2:2,B对C为3:1,B对D为4:2,C对D为1:1。请统计出那个球队胜利次数最多,哪个球队攻入球最多,哪个球队净胜球最多。#include using namespace std;char fwinner(int score[][4],int r,int c原创 2009-11-08 10:15:00 · 515 阅读 · 0 评论 -
ANSI、UNICODE、UTF-8、GB2312、GBK、DBCS、UCS的区别和由来
ANSI、UNICODE、UTF-8、GB2312、GBK、DBCS、UCS的区别和由来。 科普一下,自己也学习一下~~~~~ 一直对字符的各种编码方式懵懵懂懂,什么ANSI、UNICODE、UTF-8、GB2312、GBK、DBCS、UCS……是不是看的很晕,假如您细细的阅读本文你一定可以清晰的理解他们。Lets go! 很久很久以前,有一群转载 2009-11-01 23:24:00 · 266 阅读 · 0 评论 -
选择排序
指导思想是先并不急于调换位置,先从A[1]开始逐个检查,看哪个数最小就记下该数所在的位置P,等一躺扫描完毕,再把A[P]和A[1]对调,这时A[1]到A[10]中最小的数据就换到了最前面的位置。算法的步骤如下: 1)、先假设A[1]中的数最小,记下此时的位置P=1; 2)、依次把A[P]和A[I](I从2变化到10)进行比较,每次比较时,若A[I]的数比A[P]中的数小,则把I的值赋给P,原创 2009-11-19 11:17:00 · 251 阅读 · 0 评论 -
SQl数据分组
<!-- p{font-size:25px;}-->SQl数据分组按照年龄进行分组统计各个年龄段的人数:select Age,count(*) from table group by Agegroup by 字句必须放到where语句之后没有出现在group by字句中的列是不能放到select语句的列名表中的(聚合函数除外)错误:select Age,Salary原创 2011-06-08 19:16:00 · 254 阅读 · 0 评论