
C/C++
文章平均质量分 67
hackerwin7
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
交换两个变量的多种方法
一、中间变量:c=a; a=b; b=c;二、位运算:a=a^b; b=b^a; a=a^b;b=b^a=b^(a^b)=a^b^b=a^0=a; a=a^b=a^(b^a)=b^a^a=b^0=b;三、逻辑加减:x=x+y; y=x-y; x=x-y;x=x-y; y=x+y; x=y-x;x=y-x; y=y-x; x=x+y;溢出四、逻原创 2014-02-25 19:31:45 · 865 阅读 · 0 评论 -
浅谈C++中指针和引用的区别
指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法。1.指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:int a=1;int *p=&a;int a=1;int &b=a;转载 2014-04-30 08:47:49 · 763 阅读 · 0 评论 -
memcpy 内存重叠问题
凡是涉及cpy函数感觉都要考虑内存重叠问题,并且在重叠情况下考虑是前重叠原创 2014-04-30 09:24:52 · 2689 阅读 · 1 评论 -
指针的大小--sizeof问题
转自http://sexycoding.javaeye.com/blog/398601指针的大小是问:一个指针变量占用多少内存空间? 分析:既然指针只是要存储另一个变量的地址,。注意,是存放一变量的地址,而不是存放一个变量本身,所以,不管指针指向什么类型的变量,它的大小总是固定的:只要能放得下一个地址就行!(这是一间只有烟盒大小的“房间”,因为它只需要入一张与着地址的纸条)。转载 2014-04-30 08:33:48 · 709 阅读 · 0 评论 -
malloc/free与new/delete的区别
相同点:都可用于申请动态内存和释放内存不同点:(1)操作对象有所不同。malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数, 对象消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符,不在编译器控制权限之内转载 2014-04-20 10:16:08 · 638 阅读 · 0 评论 -
hdu 1145 So you want to be a 2n-aire?
题目地址:原创 2014-07-30 21:35:31 · 1685 阅读 · 0 评论 -
大数模板
说明:1、原创 2014-10-24 16:02:28 · 960 阅读 · 0 评论 -
hdu 1335 Basically Speaking
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1335原创 2014-10-29 14:37:09 · 1479 阅读 · 0 评论 -
SGU 101 Domino
题目地址:原创 2014-10-13 17:26:17 · 997 阅读 · 0 评论 -
最值得学习阅读的10个C语言开源项目代码
阅读优秀代码是提高开发人员修为的一种捷径…… 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:h转载 2014-11-06 17:20:54 · 3721 阅读 · 0 评论 -
浅谈C/C++中的static和extern关键字
static是C++中常用的修饰符,它被用来控制变量的存贮方式和可见性。extern, "C"是使C++能够调用C写作的库文件的一个手段,如果要对编译器提示使用C的方式来处理函数的话,那么就要使用extern "C"来说明。一.C语言中的static关键字在C语言中,static可以用来修饰局部变量,全局变量以及函数。在不同的情况下static的作用不尽相同。(1)修饰局部转载 2014-02-27 20:17:10 · 664 阅读 · 0 评论 -
int (*a)[10] 和 int *a[10] 的区别
int *a[10] :数组指针。数组a里存放的是10个int型指针 int (*a)[10] :a是指针,指向一个数组。此数组有10个int型元素 int *a[10] 先找到声明符a,然后向右看,有[]说明a是个数组,再向左看,是int *,说明数组中的每个元素是int *。所以这是一个存放int指针的数组。 int(*a)[10] 先找到声明符a,被括号括着,先看括号内的(优先级高),然后向转载 2014-02-27 18:34:00 · 14485 阅读 · 1 评论 -
int * * a[10] int * (*a)[10]和 int(*a[10])() 是什么意思
int* (*a)[10];a是一个指向包含10个int型指针元素的数组。比如:#include int main(){ // 定义数组,包含10个int* int* b[10]; for(int i = 0; i b[i] = new int(i+1); int* (*a)[10] = &b; //转载 2014-02-27 18:36:45 · 6741 阅读 · 2 评论 -
交换两个值,不用临时变量(C位运算)
转自:http://www.blogjava.net/landon/archive/2010/03/12/315301.html 今天复习C语言的时候,看到位运算这章。记得以前学习C语言的时候,都没怎么关注这一章。只是记得几个位运算符,&:按位与,|:按位或,^:按位异或,~:取反,>:右移,知道其中的含义罢了。不过当看完这一章,确实是受益匪浅。尤其是利用”异或“运算,实现交换两个值,转载 2014-02-25 19:13:04 · 1791 阅读 · 0 评论 -
inline用法与作用
内联函数是一种编译机制,优点从代码上是看不出来的,但是程序的执行效率上有差别,通常,编译器对函数调用的处理是一种类似中断的方式,即当执行到函数调用语句时,程序把当前所有的状态信息比如CPU所有寄存器(其中一个很重要的就是指令指针寄存器)的值保存起来,然后放心大胆地转去执行那个函数的代码,执行完后再返回原来的地方,恢复原先保存过的状态信息,于是也就可以接着原来被中断的指令继续往下执行。这样,就很容易转载 2014-02-25 20:08:54 · 1418 阅读 · 0 评论 -
二维数组的五种指针表示及指针数组
#include #include int main(void) { puts("Hello World!!!"); /* prints Hello World!!! */ //二维数组的五种指针表示 int i, j, a[2][3] = { { 1, 3, 5 }, { 2, 4, 6 } }, *p, (*pRow)[3]; pRow = a; p = &a[0][0];转载 2014-02-25 20:15:12 · 3051 阅读 · 0 评论 -
#ifdef与#ifndef的作用
这两条指令的使用在c++里面叫条件编译,这两条指令叫条件预处理指令.刚好手上有本c++大学教程是这样说的"条件编译是能够让程序控制预处理指令的执行和程序代码的编译.每一个条件预处理指令计算一个常量整数表达式的值,以决定代码是否编译.不能在预处理指令中计算强制类型转换表达式,sizeof表达式和枚具常量."条件预处理指令的结构与if选择结构非常相似.如:#if !defined(nu原创 2014-02-26 20:50:09 · 2596 阅读 · 0 评论 -
C语言条件编译及编译预处理阶段
转自:http://www.cnblogs.com/rusty/archive/2011/03/27/1996806.html一、C语言由源代码生成的各阶段如下:C源程序->编译预处理->编译->优化程序->汇编程序->链接程序->可执行文件 其中 编译预处理阶段,读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理。或者说是扫描源代码,对其进行转载 2014-02-26 21:00:50 · 653 阅读 · 0 评论 -
c语言中static的作用
转自:http://blog.sina.com.cn/s/blog_644949120100qjet.html在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a转载 2014-02-27 15:30:33 · 1128 阅读 · 0 评论 -
[C语言](*p)++ 与 *p++ 与 ++*p 拨开一团迷雾
转自:http://www.cnblogs.com/IAmBetter/p/3175711.html环境:win7IDE:DEV-C++编译器:GCC 1.先说++i和i++的基础代码如下:123456789101112转载 2014-02-27 18:23:35 · 1622 阅读 · 0 评论 -
C语言面试笔试题
> 预处理器(Preprocessor)1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的转载 2014-02-27 18:44:54 · 1455 阅读 · 1 评论 -
反向迭代器(rbegin,rend)
C++ primer (中文版第四版)第273页9.3.2 begin和end成员 begin和end操作产生指向容器内第一个元素和最后一个元素的下一个位置的迭代器,如下所示。这两个迭代器通常用于标记包含容器中所有元素的迭代范围。c.begin() 返回一个迭代器,它指向容器c的第一个元素c.end() 返回一个迭代器,它指向容器c的最后一个元素的下一转载 2014-02-27 19:38:32 · 824 阅读 · 0 评论 -
hdu 1462 Word Crosses
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1462题目描述:Word CrossesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 287 Accep原创 2015-01-30 16:13:41 · 1876 阅读 · 0 评论