
C++
ljg888
这个作者很懒,什么都没留下…
展开
-
判断C语言中int 与 unsigned 乘法是否会溢出
在C语言中,int 与 unsigned 乘法被定义为产生w(w为机器字长)位的值。如果乘积超过w位,所产生乘积的高位将被舍弃。下面这段代码用来判断整数乘法会不会溢出:/*练习题2.36*//*开发环境VC++ 6.0*/#includevoid main(){ unsigned x = 4294967295; unsigned y = 8; unsigned mul原创 2012-10-02 10:09:12 · 6588 阅读 · 0 评论 -
判断两个整数相加会不会溢出
实际上,大多数电脑中,整数都是用补码来表示的。发生溢出不会报警,只是将最高位直接截断。/*习题2.30C语言开发环境VC++6.0*/#includeint taddOK(int, int);void main(){ int x, y; printf("Input two integers:\n"); scanf("%d %d",&x, &y); pri原创 2012-10-01 15:22:55 · 4430 阅读 · 3 评论 -
判断两个整数相减会不会溢出
需要注意的是一个特殊情况:当减数是机器所能表示的最小负数时。/*练习题2.32开发环境VC++6.0*/#includeint taddOK(int, int);int tsubOK_Buggy(int x,int y);int tsubOK(int x,int y);void main(){ int x = 0; int y = -2147483648;//-原创 2012-10-01 16:22:42 · 4762 阅读 · 1 评论 -
C语言中除以2的幂
在大多数机器上,除法要比乘法(乘法需要10个或更多时钟周期)更慢,需要30个或更多的时钟周期。除以2的幂可以用移位运算来实现,只需要一个时钟周期。无符号和补码数分别使用逻辑移位和算术移位来达到目的。整数除法总是舍入到零。对于使用算术右移的补码机器,C表达式:x / y = ( x > k。(其中,y = 2k )下面是x/16的C语言实现:/*习题2.42开发环境VC++6原创 2012-10-02 22:11:49 · 3458 阅读 · 0 评论 -
标准C语言<string.h>中的strlen() 与 VC++ 6.0 中的strlen()
标准C语言中的中的strlen()返回值为unsigned int型: size_t strlen(chonst char* p);//p 的长度不计结束符。typedef unsigned int size_t; 也就是说size_t 就是unsigned int 类型。而VC++6.0 中的strlen()返回值为int型:用VC++ 6.0 编程时,如果加了#原创 2012-09-30 14:22:14 · 4248 阅读 · 0 评论 -
C语言运算符优先级 详细列表
文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。恩,问这个问题的人太多了,懒得继续回答,直接贴上来自己看。。。优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]转载 2012-11-02 21:13:42 · 748 阅读 · 0 评论 -
C++ TCP Server
C++ TCP Server用C++写网络程序需要winsock2.h这个头文件,还有添加一个ws2_32.lib的lib库.VC++2005添加Lib库的方法1 项目- Server属性- 配置属性- 连接器- 附加依赖项2 #pragma comment(lib,"ws2_32.lib")3 查找ws2_32.lib文件项目- 添加现有项,将ws2_32.lib作为文转载 2013-04-14 10:35:26 · 1111 阅读 · 0 评论 -
C++ TCP Client
C++ TCP Client2008年11月7日 邵盛松#include #include #pragma comment(lib,"ws2_32.lib")using namespace std;int main(){ WSADATA wsaData; if( WSAStartup(MAKEWORD(2,2) , &wsaData )!=0)//0表示初始化转载 2013-04-14 10:36:30 · 1338 阅读 · 0 评论 -
二叉树的非递归遍历以及递归遍历
二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说转载 2013-11-01 13:09:59 · 1379 阅读 · 0 评论 -
C语言中的无符号数与有符号数混合运算时隐含转换问题
//开发平台VC++6.0#include#includeint strLonger(char*,char*);void main(){ char *s = "d"; char *t = "Id"; printf("%d\n",strLonger(s,t));}int strLonger(char *s, char *t){ return strlen(s) - str原创 2012-09-30 14:46:25 · 1876 阅读 · 0 评论 -
C语言中无符号数运算判断溢出
对于无符号加法运算,当执行C程序时,不会将溢出作为错误而发信号。例如要计算s = x + y;如果溢出则会得到结果s = (x + y) %2w或者s = x + y - 2w(w 是机器中无符号的最大二进制位数)。又因为x w且y w,所以可以用if(s原创 2012-10-01 10:16:43 · 8654 阅读 · 0 评论 -
C语言笔试题
C语言笔试题有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥?答案:A & B -->2 mins转载 2011-09-20 11:24:16 · 837 阅读 · 0 评论 -
TCP Socket编程 C/C++实现 (Windows Platform SDK)
TCP Socket编程 C/C++实现 (Windows Platform SDK) Server: ------------------------------------------------------------ #pragma comment(lib,转载 2011-10-12 19:42:00 · 904 阅读 · 0 评论 -
c/c++通过socket发送结构体
c/c++通过socket发送结构可以直接先将结构转化到内存中,再通过send直接发送。 在网络通讯过程中往往涉及一些有关联的参数传递,例如数组,结构体之类的。对于结构体其实方法挺简单,由于结构体对象在内存中分配的空间都是连续的,所以可以将整个结构体直接转化成字符串发送转载 2011-10-12 19:30:00 · 707 阅读 · 0 评论 -
运算符重载
如果把bool operator == ( ClassA & a, ClassA & b);定义为非成员函数,是可以的 。但是如果是成员函数,就只能有一个参数.原创 2012-05-03 22:27:34 · 371 阅读 · 0 评论 -
如何学好C++语言
昨天写了一篇如何学好C语言,就有人回复问我如何学好C++,所以,我把我个人的一些学习经验写在这里,希望对大家有用。首先,因为如何学好C语言中谈到了算法和系统,所以这里就只谈C++语言。C++是最难的语言。这个世界上最难的编程语言可能非C++莫属了。你千万不要以为几天就可以学好C++,C++的学习曲线是相当BT的,你可以看看这篇文章。C++是一门很自由的语言,自由到了有点BT和恐怖的地步。我转载 2012-05-03 22:32:01 · 386 阅读 · 0 评论 -
如何学好C语言
有人在酷壳的留言版上询问下面的问题keep_walker :今天晚上我看到这篇文章。http://programmers.stackexchange.com/questions/62502/small-c-projects我也遇到了和提问的老外一样的问题。。能给像遇到这样烦恼的程序员一点建议嘛?谢谢!我相信,这可能是很多朋友的问题,我以前也有这样的感觉,编程编到一定转载 2012-05-03 22:33:16 · 436 阅读 · 0 评论 -
Virtual members 虚函数
A member of a class that can be redefined in its derived classes is known as a virtual member. In order to declare a member of a class as virtual, we must precede its declaration with the keyword virt转载 2012-07-13 15:19:16 · 824 阅读 · 0 评论 -
内联函数不能递归
即内联函数不能调用本身。原创 2012-07-17 09:46:25 · 4466 阅读 · 0 评论 -
C语言中数据类型不一致导致安全性漏洞-memcpy()的参数 int 与 unsigned
//库函数memcpy()的声明void *memcpy(void *dest, void *src, size_t n);//核心内存区域,拥有用户可访问的数据#define KSIZE 1024char kbuf[KSIZE];//最多可以从核心内存中向用户内存区复制maxlen字节的数据int copy_from_kernel(void *user_dest, int max原创 2012-09-30 23:11:17 · 5162 阅读 · 0 评论 -
一般函数指针和类的成员函数指针
一般函数指针和类的成员函数指针转载请注明原文网址: http://www.cnblogs.com/xianyunhe/archive/2011/11/26/2264709.html函数指针是通过指向函数的指针间接调用函数。函数指针可以实现对参数类型、参数顺序、返回值都相同的函数进行封装,是多态的一种实现方式。由于类的非静态成员函数中有一个隐形的this指针,因此,类的成员函数的指转载 2013-11-01 10:25:00 · 1393 阅读 · 0 评论