
C/C++
某精神病
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二维数组和二级指针
<br /> <br />文中部分内容参考自互联网,向原作者表示感谢。<br /> <br />前两天写个程序,传参数的时候想传个二维数组进去,结果悲剧了,函数写成Fun (int **p){},原来没有这么写过,以为这么写也是对的,结果错了,查了些资料,做个总结。<br />Fun (int **p){}这里面的int **p //这里的p不是二维数组的指针,而是指向指针的指针,即二级指针。<br />正确的二维数组的指针应该是:Int a[2][2];Int (*p)[2];//定义时无论数组维数,只可原创 2010-11-06 10:07:00 · 497 阅读 · 0 评论 -
C和C++中的void*
C和C++中的void*关于void*,今天同学提起,其实以前在《C++编程思想》中看过,内容是C语言中void*和其他类型的相互赋值都是可以的,但是C++中是不允许把void*赋值给其他类型的。做个代码试验如下:/* test.c void*测试 */ #include #include typedef struct Test { int test; }test; int main() { test *ts = malloc(sizeof(test)); fr原创 2010-11-06 08:32:00 · 568 阅读 · 0 评论 -
判断系统字节序
<br />#include <stdio.h>typedef union{ unsigned short int value; unsigned char byte[2];}to;int main(int argc, char *argv){ to typeorder; typeorder.value = 0xabcd; if (typeorder.byte[0] == 0xcd && typeorder.byte[1] == 0xab原创 2010-11-06 14:57:00 · 584 阅读 · 0 评论 -
我能做左值吗?
#include #include using namespace std; int main(int argc, char *argv[]){ char *str = “hello”; cout cout //*str = ‘w’; //这里错误,系统先给常量“hello”分配内存, //其中“hello”是const类型的, //然后分配指针空间,把“hello”首地址赋给str, //所以*str是不能做lv原创 2010-11-06 14:50:00 · 429 阅读 · 0 评论 -
C++编译期间类中的常量
<br /><br /> <br />关于编译期间在类中定义常量,用下面的一个问题来说明。<br /> <br />问题:在类中建立一个int类型的数组<br /><br /><br />方法一:(错误)<br />class Test<br />{<br /> const int size = 100;<br /> int array[size];<br />//……<br />};<br />错误原因:<br />1:因为在一个类中,const恢复了它在c中的一部分意思,在每个类对象里分配存储并代表原创 2010-11-06 14:47:00 · 792 阅读 · 0 评论 -
STL中map按值(value)排序
<br /> <br />文中的部分内容参考自互联网,感谢作者。<br /> <br />map默认是按照键(key)排序的。很多时候我们需要按值(value)排序,靠map里的<br />算法当然是不行的,那么可以把它转存到vector中,在对vector按照一定的规则排序即可。<br />//示例代码:输入单词,统计单词出现次数并按照单词出现次数从多到少排序#include <cstdlib>#include <map>#include <vector>#include <string>原创 2010-11-06 14:45:00 · 11602 阅读 · 3 评论 -
C/C++中的回调函数
<br /> <br />回调函数是由用户编写,而由调用者(例如操作系统)调用的一类函数,回调函数可以把调用者<br />和被调用者分开,调用者不需要关心被调用者到底是哪个函数,它所知道的就是有这么一类函数,<br />这类满足相同的函数签名(函数原型,参数,返回值等),由用户编写完毕后在被调用就可以了。<br />实现上回调函数一般都是通过函数指针来实现的。(引用自互联网)<br /> <br />//C代码:比较两个数的大小#include <stdio.h>#include <stdlib.h原创 2010-11-06 14:41:00 · 925 阅读 · 0 评论 -
a+++b 在编译基础上的一点点讨论
<br /> <br />关于讨论代码中的 c = a+++b 这个表达式的面试题一直都在出现。从很直观的角度上来说你可以理解成为以下的两种形式<br />一个是c = (a++) + b;另一种是c = a + (++b);<br />其实做过编译程序的人可以考虑以下过程,在词法分析阶段要进行的是将输入的文件切成token,并形成token序列,你可以知道<br />对+进行处理的时候将执行以下的代码,当编译程序读到+的时候,首先期望得到的是 = ,如果是,那么好, 是+=如果不适,那么期望得到的是 +原创 2010-11-06 14:38:00 · 613 阅读 · 0 评论 -
C++一个特殊的引用
<br />/**本例子主要是针对一个关于引用的用法*这个用法很值得注意一下,特别是注释部分*/ #include <iostream>#include <cstdlib> using namespace std; class Tdate{public: Tdate(int m = 1, int d = 0, int y = 1995) { month = m; day = d; yea原创 2010-11-06 14:35:00 · 361 阅读 · 0 评论 -
C++虚函数表解析
<br /><br />C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。<br />关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面转载 2010-11-06 14:32:00 · 363 阅读 · 0 评论 -
BHO API HOOK Wininet基于IE编程的一些资料
BHO原理:推荐vc base中的文章:如何使用BHO定制你的Internet Explorer浏览器API HOOK的基本原理:推荐C++ builder 研究中的文章:API Hook基本原理和实现[图文]如果你想使用Wininet API HOOK获取IE中的数据,code project中的这篇文章推荐:Retrieve HttpOnly Session Cookie in WebBrowser当然这篇文章只是给了个实现功能的模板,不过确实还是不错的,可以借鉴这篇文章和msdn中的wininet a原创 2010-11-18 11:31:00 · 3473 阅读 · 0 评论