c/c++
violetfeeling
这个作者很懒,什么都没留下…
展开
-
指针和const限定符
昨天看书发现对下面这些东西并没有完全了解:1,指针与const2, 指向函数的指针刚刚看书,发现对指针好像一直有些东西理解不对, 先从指针开始 吧:)A)指向指针的指针:定义使用**,例如:int ival = 1024; int *pi = &ival; int **ppi = πB,指针和引用的区别?引用总是指向某个对象,定义引用时没有初始化是错误的!给引用赋值原创 2007-11-12 16:13:00 · 667 阅读 · 0 评论 -
strlen, sizeof
#include int main(){ char a[7] = "a0/0a0/0"; int i,j; i = sizeof(a); j = strlen(a); printf("%d %d/n", i, j);}result: 7 2原创 2008-11-20 15:09:00 · 737 阅读 · 0 评论 -
prefix, surfix操作符重载
C++标准规定:当为一个类型重载++, --的前置版本时,不需要参数;当为一个类型重载++, --的后置版本时,需要一个int类型的参数作为标志。可参考class Integer{ long m_data;public: Integer(long data): m_data(data){} Integer& operator++(){ cout "Integer::operator++原创 2008-11-21 23:52:00 · 679 阅读 · 0 评论 -
union知多少
#include union A{ int a; char b[3];} ;int main(){ union A u; u.b[0] = 1; u.b[1] = 2; u.b[2] = 3; printf("%d/n", u.a);}result: -1224539627ps, 09IBM校园招聘笔试题原创 2008-11-25 08:24:00 · 655 阅读 · 3 评论 -
别人的C++面试
1,解释inheritance...自己发挥,说些显示生活的中继承相关的东西会更形象生动。2,空类编译器自动添加了哪些函数应该产生默认构造函数、析构函数、拷贝构造函数、赋值操作符函数。3,类型转换有哪些,分个解释static_cast:普通转换const_cast:将const转换成非constdynamic_cast:将父类指针或引用转化为子类指针或引用,如果指针或引用指向的确为待转化子类,则成转载 2008-11-27 11:08:00 · 678 阅读 · 0 评论 -
广联达的一道笔试题
编程]给定一个三角形如下排列: 8 4 0 2 6 9 1 3 7 0 ... ... 应该用什么数据结构存储? 如何找到从顶点到下端的和最大的路径,要求不得平行访问,也不能向上访问Answer: 可以使用动态规划 用二维数组存储 int原创 2008-12-03 20:18:00 · 1275 阅读 · 5 评论 -
回调函数:函数指针(一)
推荐一篇函数指针入门不错的文章:http://www.vckbase.com/document/viewdoc/?id=195 [ 原创文档 本文适合中级读者 已阅读59527次 ] 文档 代码 工具转载 2010-01-08 16:55:00 · 597 阅读 · 0 评论 -
内存越界和泄露调试工具(转载自赛迪网)
<br />作者:sixth<br />用C/C++开发其中最令人头疼的一个问题就是内存管理,有时候为了查找一个内存泄漏或者一个内存访问越界,需要要花上好几天时间,如果有一款工具能够帮助我们做这件事情就好了,valgrind正好就是这样的一款工具。<br /> <br />Valgrind是一款基于模拟linux下的程序调试器和剖析器的软件套件,可以运行于x86,amd64和ppc32架构上。valgrind包含一个核心,它提供一个虚拟的CPU运行程序,还有一系列的工具,它们完成调试,剖析和一些转载 2011-05-24 10:45:00 · 794 阅读 · 0 评论 -
stdarg.h vs varargs.h
/* add by gxdeng, 20110628, reason: varargs.h in need, else there would be warnings*/#ifdef HAVE_STDARG_H#include #elif defined (HAVE_VARARGS_H)#include #endif /* HAVE_STDARG_H */原创 2011-06-28 09:24:00 · 1599 阅读 · 0 评论 -
TCP/IP的一些概念宏定义[转]
/* * Address families. */ #define AF_UNSPEC 0 /* unspecified */ #define AF_UNIX 1 /* local to host (pipes, portals) */ #define AF_INET 2 /* internetwork: UDP, TCP, etc. */ #define AF_IMPLI原创 2009-08-28 09:21:00 · 1375 阅读 · 0 评论 -
移植需要注意字节对齐问题
今天YD在移植告警模块时遇到一个很稀罕的warning,google+baidu也没有找到结果。 warning描述如下: Warning[Pa039]: use of address of unaligned structure member ...... 对应的程序为: lstInit(&(gCurAlarmList.currentAlarmTable)); gC原创 2012-02-15 17:17:16 · 5453 阅读 · 3 评论 -
函数指针,其实我还不是很懂...
#include int max(int a, int b){ return (a > b ? a : b);}int main(){ int a = 12, b = 20; ---------------? p = max; printf("%d/n", -------?);}keys: int (*p)(int, int); (*p)(a, b)若不是选择题我肯定想不到,想原创 2008-11-19 23:35:00 · 788 阅读 · 0 评论 -
static virtual
class A {public: void virtual print(){coutendl;}};class B :public A { public: static void print(){c原创 2008-11-20 23:23:00 · 689 阅读 · 0 评论 -
switch case,若无break
#include int main(){ char x = B; switch (x){ case A:printf("A"); case B:printf("B"); case C:printf("C"); default: printf("D"); }}result: BCD哎...c原创 2008-11-20 10:51:00 · 11815 阅读 · 0 评论 -
命令行参数--argc, argv
好像关于argc, argv的东东在网上和书上都看了很多遍了,但仍一直模模糊糊。刚刚让发哥讲了讲,这次终于完全明白了。main(int argc, char **argv)argc为int型,作为计数。举例说明,拿./a -e比喻吧有./a, -e两项,所以argc = 2;而argv则表示每项,即 argv[0] 指./a, argv[1]指-e。OK, thats i原创 2007-11-16 10:35:00 · 784 阅读 · 0 评论 -
计算机中的物理地址与内存
这两天有个问题一直萦绕着,计算机中的物理地址和内存地址,虚地址究竟是怎么回事?地址是怎样分配的呢?翻了下操作系统课本,恩,晚上回去看看存储器管理,虚拟存储器,磁盘存储器管理这几章。隐约还记得微机原理学的寄存器寻址,现在网上看看,搜集一下待做整理。昨天看到论坛上有人问,调程序的时候编译器分配的是物理地址还是虚地址(差不多是这意思),看到大家基本回答是说虚地址,操作系统之上的根本就不可能接触物原创 2007-11-19 16:02:00 · 14193 阅读 · 0 评论 -
段错误之痛
什么是段错误?所谓的段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由以64位为一个单位的表,在这张表中就保存着程序运行的代码段以及数据段的起始地址以及与此相应的段限和页面交换还有程序运转载 2007-11-21 16:28:00 · 601 阅读 · 0 评论 -
[他山之石]C runtime library
system to provide facilities such as mathematical functions, input andoutput. these makes it unnecessary for programmers to continuallyrewrite basic capabilities specified in a programming languag转载 2008-09-19 08:50:00 · 434 阅读 · 0 评论 -
[他山之石]C语言可以给字符数组赋值的方法
char a[10];怎么给这个数组赋值呢?1、定义的时候直接用字符串赋值char a[10]="hello";注意:不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的!2、对数组中字符逐个赋值char a[10]={h,e,l,l,o};3、利用strcpychar a[10]; strcpy(a,转载 2008-09-19 08:52:00 · 5556 阅读 · 0 评论 -
[CryptoPP userguide]BufferedTransformation示例
//DumpMessage.cpp#include "../cryptlib/cryptlib.h"#include "../cryptlib/filters.h"#include void DumpMessage(CryptoPP::BufferedTransformation& bt){ using namespace std; static char const* szHexDigits原创 2008-10-05 20:57:00 · 1056 阅读 · 0 评论 -
[CryptoPP::userguide]Encryptionwithrng
about errors, process of compiling:1, error: stray ‘/357’ in programanswer from google:It means you have some goofy characters on that line. They are probablyinvisible. Try deleting the line entirel原创 2008-10-06 10:32:00 · 543 阅读 · 0 评论 -
微软笔试题一
http://kongjian.baidu.com/ahli/blog/item/c0f1b13542d24e8fa61e1298.html1、求函数返回值,输入x=9999; int func(x) { int countx = 0; while(x) { countx ++; x = x&(x-1);转载 2008-10-10 13:07:00 · 1078 阅读 · 0 评论 -
C程序设计语言之细节(二)
TNND,昨天的竟然又没提交上,电脑上还没备份,郁闷!1, C语言中,所有函数参数都是通过值传递的。 传递给被调用函数的函数值存放在临时变量中。C语言中,被调用函数并不能修改主调函数的参数值,而只能修改私有的临时副本值。 若要调用函数修改主调函数参数值,可以采用指针。2, C语言中字符串常量以字符数组的形式储存。 strlen(s)返回字符串常量s的长度,但不包含末尾的/0. 枚举是一个常原创 2008-10-11 23:35:00 · 642 阅读 · 0 评论 -
new int( ) 一道阿郎笔试题
#include using namespace std;void fun(int a,int* b,int &c,int* &d){ a++; (*b)++; b = new int(10); cout cout c++; d++; d = new int(6); cout cout }int main(int argc, char* argv[]){ int a原创 2008-10-30 15:15:00 · 3963 阅读 · 0 评论 -
发现<<的优先级好低呀
发现#include #define GET_BIT(a, b, c) a int main(){ int a = 1; int b = 5; int c = 4; printf("%d/n", GET_BIT(a, b, c) + 1);}result: 4 C的优先级口诀括号成员第一; //括号运算符[]() 成员运算符. ->全体单目第二; //所有原创 2008-11-19 23:22:00 · 571 阅读 · 0 评论 -
C中的typeof & type
#define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__mptr = (ptr); \ (type *)( (unsigned char *)__mptr - _offsetof(type,member) );})#define _offsetof(TYPE, MEMBER)原创 2013-03-27 09:03:03 · 1375 阅读 · 0 评论