VCer代码 VCer开源 VCer文章 VCer工具 VCer知道 VCer词典 VCer读书 VCer论坛   站点首页 我要张贴 控制面板
VCer代码 VCer开源 VCer文章 VCer工具 VCer知道 VCer词典 VCer读书 VCer论坛   站点首页 我要张贴 控制面板

目前位置: VCer资源中心 >>> VCer文章 >>> C++/MFC基础
我来转发一篇文章!>>>


如何判断一段程序是由C 编译程序还是由C++编译程序编译的?
 
答案:#ifdef __cplusplus cout<<"c++";#else cout<<"c";#endif本文转载自IT网it求职笔试真题库网。
作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1713次,回复0
c/ c++基本概念总结,笔试必考
 
static用法小结 static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).(1)局部静态变量(2)外部静态变量/函数(3)静态数据成员/成员函数下面就这三种使用方式及注意事项分别说明一、局部静态变量在C/C++中, 局部变量按照存储形式可分为三种auto, static, register(谭浩强, 第174-175页)与auto类型(普通)局部变量相比, static局部变量有三点不同1. 存储空间分配不同auto类型分配在栈上, 属于动态存储类别, 占动态存储区空间, 函数调用结束后自动释放, 而static分配在静态存储区, 在程序整个运行期间都不释放. 两者之间的作用域相同, 但生存期不同.2. static局部变量在所处模块在初次运行时进行初始化工作, 且只操作一次3. 对于局部静态变量, 如果不赋初值, 编译期会自动赋初值0或空字符, 而auto类型的初值是不确定的. (对于C++中的class对象例外, class的对象实例如果不初始化, 则会自动调用默认构造函数, 不管是否是static类型)特点: static局部变量的”记忆性”与生存期的”全局性”所谓”记忆性”是指在两次函数调用时, 在第二次调用进入时, 能保持第一次调用退出时的 ...
作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1801次,回复0
文件中有一组整数,要求排序后输出到另一个文件中
 
答案:#i nclude<iostream>#i nclude<fstream>using namespace std;void Order(vector<int>& data) //bubble sort{ int count = data.size() ; int tag = false ; // 设置是否需要继续冒泡的标志位 for ( int i = 0 ; i < count ; i++) { for ( int j = 0 ; j < count - i - 1 ; j++) { if ( data[j] > data[j+1]) { tag = true ; int temp = data[j] ; data[j] = data[j+1] ; data[j+1] = temp ; } } if ( !tag ) break ; }}void main( void ){ vector<int>data; ifstream in("c:\\data.txt"); if ( !in) ...
作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1232次,回复0
判断一个字符串是不是回文
 
int IsReverseStr(char *aStr){ int i,j; int found=1; if(aStr==NULL) return -1; j=strlen(aStr); for(i=0;i<j/2;i++) if(*(aStr+i)!=*(aStr+j-i-1)) { found=0; break; } return found;} [ 本帖最后由 oases2008 于 2007-2-3 19:34 编辑 ]本文转载自IT网it求职笔试真题库网。
作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1232次,回复0
Josephu 问题
 
为:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。数组实现:#i nclude <stdio.h>#i nclude <malloc.h>int Josephu(int n, int m){ int flag, i, j = 0; int *arr = (int *)malloc(n * sizeof(int)); for (i = 0; i < n; ++i) arr = 1; for (i = 1; i < n; ++i) { flag = 0; while (flag < m) { if (j == n) j = 0; if (arr[j]) ++flag; ++j; } arr[j - 1] = 0; printf("第%4d个出局的人是:%4d号\n", i, j); } free(arr); return j;}int main(){ int n, m; scanf("%d%d", &n, &m); printf("最后胜利的是%d号!\n", Josephu(n, m)); sy ...
作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1147次,回复0
c语言的宏
 
关于c语言的宏,我肯定许多人一定有过惨痛的经验。几年前一个典型的错误让我找了一天:#define MACRO_1 5#define MACRO_2 MACRO_1 + 1int a = MACRO_2 * 3;我希望的结果当然是a = 18,可是实际上大家应该都知道a是 5 + 1 * 3 = 8.我以为这样的错误我不会再犯,可是前一阵我还是被一个几乎相同的错误给消耗了一个下午:#define PHY_ADDER 0x400000#define PHY_ADDER_2 PHY_ADDER + 0x100000int *p = (int *)PHY_ADDER_2;指针p的值是多少?0x500000?那只是我想要的结果。p = 0x400000 + 0x100000 * sizeof(int);在我的机器上等于0x800000。你知道为什么吗?指针的加法有这么点特性,如果你知道p++并不意味着p值只加了1你就知道为什么了。 一定要给你的宏加上括号!!本文转载自IT网it求职笔试真题库网。
作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1225次,回复0
Thinking in C -- C指针
 
忘记悲伤最好的办法可能就是让自己有事做吧。 因为工作需要,很多好朋友都在重新补最基础也是最重要的C语言。人常说没有学好指针就等于没有学过C,在学校时可能老师只是为了应付考试,而一直在讲那些死板的语法。但对这个C语言(也是任何编程思想)的精髓没有重视。 确实,在几年的编程过程中,感觉对指针的精通可以让我们对任何语言都触类旁通了。语言只是方便我们表达自己思想的助记符,真正的程序在内存中是如何运行的?理解指针可以让你更清楚的知道。 最近在网上看了一些讲解指针的文章,从这些文章中将自己对指针的了解加以整理,我认为基本上如果可以真正理解下面这些,那么你可以对别人说你对C的思想已经精通了。完全精通一门语言当然还要知道它常用的库函数,当然那些就要你自己多编,多记了。/*--------------------------------概念------------------------------------------*/ 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:[1]指针的类型,[2]指针所指向的类型,[3]指针的值或者叫指针所指向的内存区,[4]还有指针本身所占据的内存区。 --sizeof(指针变量名) 一般32位机都为4; 指针的类型(即指针本身的类型)和指针所指向的类型是两个概念。当你对C越来越熟悉时 ...
作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1220次,回复0
一道c++面试题 -----常量的分配位置
 
char str1[] = "abc"; // char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char* str5 = "abc"; const char* str6 = "abc"; cout << boolalpha << ( str1==str2 ) << endl; //false cout << boolalpha << ( str3==str4 ) << endl; //false cout << boolalpha << ( str5==str6 ) << endl; //falseOut: false false true本文转载自IT网it求职笔试真题库网。
作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1403次,回复0
using namespace std
 
所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:1、直接指定标识符。例如std::ostream而不是ostream。完整语句如下:std::cout << std::hex << 3.4 << std::endl;2、使用using关键字。using std::cout;using std::endl;以上程序可以写成cout << std::hex << 3.4 << endl;3、最方便的就是使用using namespace std,这样命名空间std内定义的所有标识符都有效(曝光)。就好像它们被声明为全局变量一样。那么以上语句可以如下写:cout << hex << 3.4 << endl;本文转载自IT网it求职笔试真题库网。
作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1393次,回复0
STL之list容器(笔记)
 
容器list,所控制的长度为N的序列是以一个有着N个节点的双向链表来存储的,支持双向迭代器。优势:可以在链表中随意的插入和删除元素或是子链表,所需的仅是改变前后指针。劣势:在定位操作中比如查找和随即存取,时间是线性增加的,而且在存储上每个节点还有前向和后向两个指针。异常:模版类list的另外一个有点是在异常处理方面,对任何容器来说,器成员函数在执行中抛出的异常,使容器本身处于一种一致的状态,可以被销毁,并且容器没有对其所分配的存储空间失去控制。但对大部分操作尤其是那些能够影响多个元素的操作,当抛出异常时,并美欧制定容器的精确状态,但list保证对于大部分成员函数抛出异常时,容器能够恢复到操作前的状态。typedef list<T,allocator<T>> mycont; //使用默认模版参数,可以省略第二个参数构造函数:list() 声明一个空列表;list(al) 声明一个空列表,但她还存储一个分配器对象al;list(n) 声明一个有n个元素的列表,每个元素都是由其默认构造函数T()构造出来的list(n,val) 声明一个由n个元素的列表,每个元素都是由其复制构造函数T(val)得来的list(n,val,al) 声明一个和上面一样的列表,但还存储分配器对象al;list(first,last) 声明一个列表,其元素的初始值来源于由区间所指定的序列中的元素list(firs ...
作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读2646次,回复0
C语言的优势
 
C比其他语言变化少(越老越经典),容易学,工作又好找。以上是个人看法,因为我现在觉得:C才是王道!本文转载自IT网it求职笔试真题库网。
作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1289次,回复0
const的思考
 
1、什么是const?常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可以偷梁换柱进行更新:)2、为什么引入const?  const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。3、cons有什么主要的作用?(1)可以定义const常量,具有不可变性。例如:const int Max=100;int Array[Max]; (2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。例如:void f(const int i) { .........}编译器就会知道i是一个常量,不允许修改;(3)可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。同宏定义一样,可以做到不变则已,一变都变!如(1)中,如果想修改Max的内容,只需要:const int Max=you want;即可!(4)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。还是上面的例子,如果在函数体内修改了i,编译器就会报错;例如: void f(const int i) { i=10;//error! }(5) 为函数重载提供了一个参考。class A{......void f(int i) {......} //一个函数void f(int i) const {......} //上一个函数的重载.... ...
作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1131次,回复0
STL使用入门( Using STL)
 
STL使用入门( Using STL) [*]0 前面的话(Winter) [*]1 介绍 [*]2 规则 [*]Rule 1: [*]Rule 2 [*]Rule 3: [*]Rule 4: [*]Rule 5: [*]3 结论 0 前面的话(Winter) C++已经在中国相当普及,但C++ STL却使用的人不多。许多人有一定成见,认为STL降低了C++的效率。特别是那些自诩为技术专家的人,他们一直使用C语言,对于新事物总是先用批判的眼光对待......先不说这些,我这几天看见http://stl.winterxy.com网站上的这篇小文,发现写得简明扼要,通俗易懂。翻译出来,希望对STL的普及有一定帮助。 1 介绍 我最开始结束C++编程是从DOS下的Borland C++开始的。那时他们在最新版本3.1中就包含了一套模板库用来做collection.那真是个好东东。当我开始使用Visual C++ 2.2的时候,我甚至试图去把Borland公司的collection模板库嵌入到Visual C++中去,但是没有成功。唯一可行的解决方案是切换到微软(Microsoft)的collection上,它是MFC的一部分分。但总是有些问题,其原因如下: [*]一旦实现部分已经代码写完,很难从一种容器(container)类型切换到另外一种容器。 [*]不同容器的迭代器(Iterato ...
作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1524次,回复0
一道经典常考的c语言题目,strcpy函数的编写
 
已知strcpy函数的原型是: char * strcpy(char * strDest,const char * strSrc); 1.不调用库函数,实现strcpy函数。 2.解释为什么要返回char *。 解说: 1.strcpy的实现代码 char * strcpy(char * strDest,const char * strSrc) { if ((strDest==NULL)||(strsrc="/=NULL")) file://[/1] throw "Invalid argument(s)"; //[2] char * strDestCopy=strDest; file://[/3] while ((*strDest++=*strSrc++)!='\0'); file://[/4] return strDestCopy; } 错误的做法: [1] (A)不检查指针的有效性,说明答题者不注重代码的健壮性。 (B)检查指针的有效性时使用((!strDest)||(!strSrc))或(!(strDest& ...
作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1642次,回复0
static 用法小结
 
static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).(1)局部静态变量(2)外部静态变量/函数(3)静态数据成员/成员函数下面就这三种使用方式及注意事项分别说明一、局部静态变量在C/C++中, 局部变量按照存储形式可分为三种auto, static, register(<C语言程序设计(第二版)>谭浩强, 第174-175页)与auto类型(普通)局部变量相比, static局部变量有三点不同1. 存储空间分配不同auto类型分配在栈上, 属于动态存储类别, 占动态存储区空间, 函数调用结束后自动释放, 而static分配在静态存储区, 在程序整个运行期间都不释放. 两者之间的作用域相同, 但生存期不同.2. static局部变量在所处模块在初次运行时进行初始化工作, 且只操作一次3. 对于局部静态变量, 如果不赋初值, 编译期会自动赋初值0或空字符, 而auto类型的初值是不确定的. (对于C++中的class对象例外, class的对象实例如果不初始化, 则会自动调用默认构造函数, 不管是否是static类型)特点: static局部变量的”记忆性”与生存期的”全局性”所谓”记忆性”是指在两次函数调用时, 在第二次调用进入时, 能保持第一次调用退 ...
作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1437次,回复0
白乔原创:轻轻松松C to C++[2]
 
二、挑战#define #define是C提供的一条很有用的指令,但在C++中,很有可能杜绝宏指令的使用。 1 .const 宏指令允许用户指定某一标识符的值作为一个常量,如: #define PI 3. 1415926 它也可以用来定义字符串: #define HZK16 "HZK16F" 以下使用可以通过: cout << "PI is“<<PI; cout << "Filename: "<< HZK16; 但宏毕竟不是一个合法的对象,虽然它伪装得很完美。C++为用户提供了常量修饰符const,可以指定某个对象的值为常量。它阻止用户对其进行赋值或其它副作用,类似于上例: const float PI=3.1415926; char*const HZK16="HZK16F"; PI = 3. 14; //error HZK16="HZK16K"; //error: Cannot modify a const object 但对于指针的处理似乎有些复杂,例如以下使用却又合法: HZK16[5]=’r’; //ok HZK16 ="HZK16K" 清楚地了解const修饰的范围很有必要,如下是声明形式与相应含义: char*const cpl="I love you!“; //const修饰’*’,cp1是一个指向字符的指针常量 const ch ...
作者:不祥 bluejoe张贴于2004-06-03 22:13:48.0,共阅读2403次,回复0
生死MFC程序
 
MFC将大部分函数都进行了封装,程序员只要改写部分重要的virtual函数即可,这往往使初学者摸不着头脑,连个WinMain函数都看不到,程序从哪开始从哪结束?基本的条理搞不清,永远也不会有提高。下面简单讲下基运行过程. 1,CMyWinApp theApp 程序从这里开始 2,_tWinMain() 在APPMODUL.CPP 它实际上只调用AfxWinMain函数 3,AfxWinMain() WINAMIN.CPP,去掉一些次要信息,它作的事就是: int AFXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { int nReturnCode = -1; CWinThread* pThread = AfxGetThread(); CWinApp* pApp = AfxGetApp(); ->实际上就是取得CMyWinApp对象指针 AfxWinInit(hInstance, hPrevInstance, lpCmdLine, nCmdShow) pApp->InitApplication() pThread->InitInstance() pThread->Run(); AfxWinTerm(); ...
作者:不祥 bluejoe张贴于2004-06-03 14:20:55.0,共阅读3091次,回复0
白乔原创:轻轻松松C to C++
 
C++技术固然是很时髦的,许多C用户都想在尽可能短的时间内为自己贴上C++的标签。介绍C++的书很多,但只有那些已经侥幸入门的用户才偶尔去翻翻,仍有不少在C++门口徘徊的流浪汉。 本文只针对C用户,最好是一位很不错的老用户(譬如他在遇到最简单的问题时都尝试着使用指针),通过一些C和更好的C++(本文用的是Borland C++3.1版本)例程介绍有关C++的一些知识,让读者朋友们“浅入深出”,轻轻松松C to C++! 一、标签!标签! 快快为你的程序贴上C++的标签,让你看起来很像个合格的C++用户…… 1.注释(comment) C++的注释允许采取两种形式。第一种是传统C采用的/*和*/,另一种新采用的则是//,它表示从//至行尾皆为注释部分。读者朋友完全可以通过//使你的代码带上C++的气息,如test0l: //test01.cpp #include <iostream.h> //I'm a C++user! //…and C is out of date. void main() { cout<<"Hello world!\n"; //prints a string }Hello-world! 如果你尝试着在test0l. exe中找到这些高级的注释,很简单,它们不会在那里的。 2. cincout 你可能从test ...
作者:不祥 bluejoe张贴于2004-05-31 21:40:06.0,共阅读2624次,回复1
MFC6.0 Class Hierarchy Chart
 
About the Microsoft Foundation Classes The library’s classes are presented here in the following categories: Root Class: CObject MFC Application Architecture Classes Application and Thread Support Classes Command Routing Classes Document Classes View Classes (Architecture) Frame Window Classes (Architecture) Document-Template Classes Window Dialog and Control Classes Frame Window Classes (Windows) View Classes (Windows) Dialog Box Classes Control Classes Control Bar Classes Drawing and Printing Classes Output (Device Context) Classes Drawing Tool C ...
作者:不祥 bluejoe张贴于2004-04-30 08:43:28.0,共阅读3049次,回复0
ASCII码图
 
ASCII码图 表1. 0-127 表2. 128-255
作者:不祥 bluejoe张贴于2004-03-11 08:39:38.0,共阅读3048次,回复0

页次: 6/7页 记录总数124 9 7 [ 1 2 3 4 5 6 7 8 9 10 ] 8 :