C/C++
文章平均质量分 65
wplxb
这个作者很懒,什么都没留下…
展开
-
[转] 学习 c++ 的 50 条忠告
学习 c++ 的 50 条忠告 把C++当成一门新的语言学习(和C没啥关系!真的。); 看《Thinking In C++》,不要看《C++变成死相》; 看《The C++ Programming转载 2006-04-05 22:22:00 · 455 阅读 · 0 评论 -
[转] 打印自身的 C 程序
#include int main(){char *s = "#include %cint main(){char *s = %c%s%c; printf(s, 10, 34, s, 34); return 0;}"; printf(s, 10, 34, s, 34); return 0;}参考:http://hi.baidu.com/amwfnce/blog/item/abbe59daaa970转载 2007-07-10 20:19:00 · 894 阅读 · 0 评论 -
C 语言库函数的一些注意点
---------------------------------------------------------------------------sscanf 与 strtok 的区别1. sscanf char a[100]; sscanf("[abc]def", "%[^][]", a); printf("%s", a); 结果:abc (a原创 2007-07-12 15:10:00 · 795 阅读 · 0 评论 -
大字节序 小字节序
---------------------------------------------------------------------------Endian 的由来一、引子 在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法原创 2007-07-31 17:52:00 · 4422 阅读 · 1 评论 -
字符串的一些题
---------------------------------------------------------------------------给定一个字符串,求其最长连续重复子串,如果有多个则返回第一个。例如 “ababc”要求返回“ab”,因为“ab”连续重复出现且最长。给出复杂度分析。思路:设字符串长度为 len,从长度为 len/2 开始,递减测试,看是否有长度为 test 的重复连原创 2007-08-07 10:07:00 · 1301 阅读 · 0 评论 -
算法和数据结构试题
---------------------------------------------------------------------------1. 二叉排序树和哈希表那个查找效率高。 普遍而言,哈希表更快。但要看具体情况。 二叉排序树的查找复杂度一般为 O(logn)。但如果退化为链表,则复杂度为 O(n)。 哈希表的查找速度要看哈希函数,一般为 O(1)。但如果哈希表容原创 2007-08-07 16:46:00 · 1917 阅读 · 0 评论 -
谷歌试题
---------------------------------------------------------------------------struct 和 class 的区别见 http://blog.csdn.net/wplxb/archive/2007/06/16/1654129.aspx-----------------------------------------------原创 2007-08-11 12:22:00 · 2045 阅读 · 0 评论 -
[转] Linux 系统下 C 语言编程基础知识介绍
原作:Linux 系统下 C 语言编程基础知识介绍这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将会学到以下内容:源程序编译Makefile的编写程序库的链接程序的调试头文件和系统求助1.源程序的编译在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面我们以一个实例来说明如何使用gcc编译器.假设我们有下面一个非常简单的源程序(hel转载 2007-05-14 08:56:00 · 801 阅读 · 0 评论 -
[转] Linux 下使用 gcc 编译程序找不到库的分析和解决方法
转自:xecho.org今天编译一个小程序出现麻烦,终于搞定了,发下方法可能适合和我一样在Linux下写程序的家伙.一部分代码 如下 #include #include main(){double x = 1.0;double ans;ans = sqrt (x);printf("/nans is %lf/n", ans);return 0;}编译:[root转载 2007-05-14 08:52:00 · 2118 阅读 · 0 评论 -
位运算试题
---------------------------------------------------------------------------1. 计算一个整数中比特位值为 1 的位数。直观解法:int countOnes(int x){ int count = 0; for(; x; x >>= 1) { if (x & 1) {原创 2007-08-18 20:41:00 · 1599 阅读 · 0 评论 -
C 试题
---------------------------------------------------------------------------1. printf() 如何实现? 利用可变参数特性。就是说可以访问 va_list (一般变量名为 arglist,需要包含 stdarg.h 头文件)。参数列表中可以放任何 C 支持的对象类型。可变参数的实现有安全上的漏洞,容易被黑客攻击。原创 2007-06-16 09:28:00 · 902 阅读 · 0 评论 -
C++ 试题
---------------------------------------------------------------------------1. C++ 中类与结构体的区别答:类成员默认访问权限为私有(private),结构体成员默认访问权限为公共(public),其他地方完全一样。-----------------------------------------------------原创 2007-06-16 09:35:00 · 1878 阅读 · 0 评论 -
不使用其他变量,交换两个变量的值
不使用其他变量,交换两个变量的值。/* * 方法壹。 * * 因为异或运算满足交换律和结合律,且 A^A = 0, 0^A = A, * 所以用下面过程可以交换 A, B: (用 a, b 表示原始的 A, B 值) * 1) A = A^B * 2) B = A^B // B = A^B = (a^b)^b = a^(b^b) = a^0 = a * 3) A = A^B // A = A^B原创 2007-06-16 09:39:00 · 971 阅读 · 0 评论 -
微软试题
---------------------------------------------------------------------------1. 链表和数组的区别在哪里? 数组静态分配内存,链表动态分配内存; 数组在内存中连续存放,链表不连续; 数组可以用下标定位,时间复杂度 O(1),链表定位元素时间复杂度 O(n); 数组删除或插入元素时间复杂度 O(n),链原创 2007-06-16 09:41:00 · 1189 阅读 · 0 评论 -
一些关于排列组合的题目
---------------------------------------------------------------------------求从 n 个元素里取 m 个的所有组合。#include #include #define MAX 100void print(const int * array, int m){ int i; for (i = 0; i {原创 2007-10-22 22:47:00 · 1120 阅读 · 0 评论 -
我的 C/C++ 代码风格
---------------------------------------------------------------------------★ 空行在每个类声明之后、每个函数定义结束之后都要加空行。在一个函数体内,逻辑上密切相关的语句之间不加空行,其它地方应加空行分隔。------------------------------------------------------------原创 2007-04-19 20:42:00 · 1021 阅读 · 0 评论 -
如何实现“Press any key to continue...”
---------------------------------------------------------------------------Windows 下:#include #include /* For getch(), non-portable. */int main(int argc, char *argv[]){ printf("Press ENTER to cont原创 2007-07-07 09:39:00 · 4187 阅读 · 0 评论 -
单向链表的几道题
---------------------------------------------------------------------------1. 转置单向链表 (也就是反序,注意链表的边界条件并考虑空链表)。#include struct listtype{ int data; struct listtype * next;};typedef struct listtype原创 2007-07-02 16:26:00 · 2970 阅读 · 2 评论 -
Ctags
---------------------------------------------------------------------------Ctags 学习笔记基本使用方法:在 vim 中,ctrl+] 跳到对应 tag,ctrl+t 返回原处1. 对单个文件生成 tags进入该文件所在的目录 # ctags -L - sourcefile [ctrl+d] #原创 2006-04-16 19:22:00 · 1322 阅读 · 0 评论 -
[转] C++ 临时变量
整理自 CSDN 上的一个贴子:http://community.csdn.net/Expert/TopicView3.asp?id=4997344#include #include using namespace std;string GetStr(){ return string("Hello");}int main(int argc, char *argv[]){ const c转载 2006-09-04 22:21:00 · 640 阅读 · 0 评论 -
C++ 常量
#include using std::cout;using std::endl;int main(int argc, char *argv[]){ const int count = 10; int *p = (int *)&count; *p = 100; cout cout cout cout cout cout ret原创 2006-09-05 14:05:00 · 560 阅读 · 0 评论 -
C++ Builder
---------------------------------------------------------------------------1. C++ Builder 网上资源 C++ Builder 研究 http://www.ccrun.com/ C++ Builder 程序员 http://mybcb.diy.myrice.com/ 电脑学习 C++原创 2006-09-24 22:22:00 · 3800 阅读 · 1 评论 -
[转] 总结:移植(porting),解决undefined reference to错误及unresovled错误
http://discussion.forum.nokia.com/forum/archive/index.php/t-82035.htmlsjyuhusun2006-06-07, 05:24:) :) 鉴于本人在此走过弯路及探索,为了大家少走弯路,现小结一下移植(porting)的林林总总,供大家参考,不足之处还望前辈们多多指教。 以C code移植到symbian中为转载 2006-10-13 21:52:00 · 1186 阅读 · 0 评论 -
[转] 关于流和缓冲
标准I/O提供了三种类型的缓存:(1) 全缓存。在这种情况下,当填满标准I/O缓存后才进行实际I/O操作。对于驻在磁盘上的文件通常是由标准I/O库实施全缓存的。在一个流上执行第一次I/O操作时,相关标准I/O函数通常调用malloc(见7 . 8节)获得需使用的缓存。术语刷新(flush)说明标准I/O缓存的写操作。缓存可由标准I/O例程自动地刷新(例如当填满一个缓存时),或者可以调用函数fflu转载 2006-10-17 17:10:00 · 650 阅读 · 0 评论 -
关于 C/C++ 的输入输出缓冲
★printf 无缓冲,cout 有缓冲;缓冲刷新的时刻有:1. 缓冲区满;2. 输出 endl;3. 显式调用 flush 函数;4. 程序结束时。★C 中缓冲设置相关的函数:setbuf()★cout.setf(ios::stdio);上述语句让 iostream 和 stdio 共用一个缓冲。★程序1:////////////////////////////////////#include原创 2006-10-14 11:14:00 · 913 阅读 · 0 评论 -
C++ 中指针和引用的区别
引用和指针★ 相同点:1. 都是地址的概念; 指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。★ 区别:1. 指针是一个实体,而引用仅是个别名;2. 引用使用时无需解引用(*),指针需要解引用;3. 引用只能在定义时被初始化一次,之后不可变;指针可变; 引用“从一而终” ^_^4. 引用没有 const,指针有 const,const 的指针不可变;5. 引用不能为空原创 2006-10-14 21:15:00 · 2203 阅读 · 4 评论 -
C++ 中不能重载的运算符
C/C++ 里大多数运算符都可以在 C++ 中被重载。C 的运算符中只有 . 和 ?:(以及 sizeof,技术上可以看作一个运算符)不可以被重载。C++ 增加了一些自己的运算符,除了 :: 和 .* 外,大多数都可以被重载。原创 2006-10-16 20:34:00 · 3150 阅读 · 0 评论 -
关于成员指针
★ 关于函数成员指针 1. 派生类的成员指针可以指向基类的相应成员; 2. 基类的成员指针不一定可以指向派生类的相应成员; 1) 如果派生类覆写了基类的函数,不可以; 2) 如果派生类没有覆写基类的函数,可以; 3) 如果是派生类中新加的函数,不可以。 原因: 1. 派生类具有基类的所有成员; 2. 1) 此时基类和派生类中的该函数声明一样,定义不一样;如果此时允许基类该函原创 2006-11-04 12:30:00 · 745 阅读 · 0 评论 -
C/C++ 语言中结构体的内存分配
C/C++ 语言中结构体的内存分配 当未用 #pragma 指令指定编译器的对齐位数时,结构体按最长宽度的数据成员的宽度对齐;当使用了 #pragma 指令指定编译器的对齐位数时,结构体按最长宽度的数据成员的宽度和 #pragma 指令指定的位数中的较小值对齐。 #pragma 指令格式如下所示: #pragma pack(4) // 或者 #pragma原创 2006-06-21 19:57:00 · 1228 阅读 · 0 评论 -
嵌套注释
例一:/*/**/"*/"/*"/**/在不允许嵌套注释的编译器中相当于 "*/"在允许嵌套注释的编译器中相当于 "/*"例二: /*/*/0*/**/1 在不允许嵌套注释的编译器中相当于 0*1 在允许嵌套注释的编译器中相当于 1来源:《C 陷阱与缺陷》原创 2006-07-31 11:31:00 · 867 阅读 · 0 评论 -
C++ 缩略语
ADL Argument Dependent LookupPOD Plain Old DataRAII Resource Acquisition Is InitializationSFINAE Substitution Failure Is Not An ErrorODR One Definition Rule原创 2006-12-28 11:16:00 · 524 阅读 · 0 评论 -
调整 srt 字幕文件时间戳的程序
/*************************************************************************** * Description: * A tool to adjust the timestamps of srt subtitle files. * Version 0.1 * Author : wplxb原创 2007-07-02 09:47:00 · 3051 阅读 · 0 评论 -
一些关于树的题目
---------------------------------------------------------------------------将一棵二叉搜索树转换为有序链表。/*************************************************************************** * Description: * 将一棵二叉原创 2007-11-02 09:49:00 · 1277 阅读 · 2 评论