C++学习
笨笨周0915
这个作者很懒,什么都没留下…
展开
-
c++中char * 和 char []的区别
问题引入: 在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内容程序是会崩溃的,而后者完全正确。程序演示:测试环境Devc++代码#include using namespace std;main(){ char *c1 = "abc"; char c2[] = "abc"; char *c3 =转载 2009-06-26 13:22:00 · 558 阅读 · 0 评论 -
c/c++中使用宏来定义动态数组
#include using namespace std;#define array(name, index) name[index]int main(void){ char array(a, 5) = {A}; int array(b, 10); b[1] = 1000; cout<<a[0]<<endl; cout<<b[1]<<endl; ge原创 2009-06-26 13:31:00 · 1439 阅读 · 0 评论 -
SendMessage 和 PostMessage 的区别
1、首先是返回值意义的区别,我们先看一下 MSDN 里的声明:LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);BOOL PostMessage( HWND hWnd, UINT Msg, WPARAM转载 2009-09-21 09:29:00 · 453 阅读 · 0 评论 -
生死疆界—new与delete之间—CheckBytes
问题源自一段简单的代码:void main() { char *p = new char; cin>>p; cout在以上代码中,如果你输入:abcd,那么如你所望,你会看到"正确"的输出"c"。但是会有错误提示出现:Debug Error!Program: test.exeDAMAGE: after Normal block(#64) at 0x003429f8更离奇的是,如果将代码改转载 2009-10-28 16:29:00 · 1220 阅读 · 2 评论 -
关于C语言中的运算符的优先级和结合性
C语言中,运算符的运算优先级共分为15级。1级最高,15级最低。在表达式中,优先级较高的先于优先级较低的进行运算。 而在一个运算量两侧的运算符优先级相同时, 则按运算符的结合性所规定的结合方向处理。 C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z则y应先与"-"号结合, 执行x-y运算,然后原创 2009-11-08 10:26:00 · 2324 阅读 · 2 评论 -
关于Main函数的命令行参数
<br />很多时候我们的程序需要从外部获取一些运行时的参数,比如我的主程序 去调用另外一个exe或者其他的程序,在调用外部可执行程序的时候,一般我们都需要传入一些参数。 那么在我们的外部程序 如何来获取传入的参数呢?<br /> 下面我们来看一下: <br /> 在WinMain函数的主函数中,已经传入了一个参数 LPTSTR lpCmdLine ,这个参数在默认情况下是为空的,只传入附加参数(不包含当前运行程序的完整路径),如果要获取完整的参数 可以使用LPTSTR = GetComma原创 2010-06-08 09:58:00 · 996 阅读 · 0 评论 -
C++ 前置声明的问题
<br />很多的时候 我们在使用一个对象的时候 没有引入其头文件 而是在CPP中去引入,这样我们可能会声明Class XXX;然后再头文件中可以使用该类了,例如<br />ifndef _TEST_H#define _TEST_H#endifclass Student;class Person{ private: Student* stu; // 或者Student stu}; <br />如果我们使用的是Student stu的话 那么会提示 Student未定义原创 2010-12-30 10:32:00 · 655 阅读 · 2 评论