
C/C++
文章平均质量分 63
大牛~Daniel
理想还是要有的,万一实现了呢。
展开
-
C/C++跳棋问题
/************************************************************************//*FileName:跳棋问题/*Author:PenglueR/*Date:2009/07/15/*Comment:/******************************************************************原创 2009-07-15 21:29:00 · 2272 阅读 · 0 评论 -
杂论C语言指针笔记(一)
杂论C语言指针笔记指针是C和C++语言编程中最重要的概念之一,也是最容易产生困惑并导致程序出错的问题之一。利用指针编程可以表示各种数据结构, 通过指针可使用主调函数和被调函数之间共享变量或数据结构,便于实现双向数据通讯;并能像汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C和C++语言的功能。接下来将原创 2010-01-18 14:44:00 · 768 阅读 · 0 评论 -
杂论C语言指针笔记(二)
杂论C语言指针笔记(二)指针与数组(略谈)注意以下两个声明的区别extern int *x;extern int y[];前者声明的x是整形指针,后者声明的y是尚未确定。函数指针“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。函数指针有两个用途:调用函原创 2010-01-18 16:51:00 · 649 阅读 · 0 评论 -
可变参数的理解与使用之整理篇
当一个函数中的同类型的参数有很多个的时候,在定义这个函数的时候该怎么办?(va_list、va_start、va_arg、va_end宏)于是它这样定义:fun(Type para1 para2 para3 ...)即:前面写几个参数后后面的参数用省略号...代替.前面写出的参数就是固定参数,后面没有写出的参数就是可选参数.va_start() va_arg() va_转载 2010-01-17 15:32:00 · 804 阅读 · 0 评论 -
寄存器与函数栈帧之整理篇
每个任务(进程)有一个栈,在这个进程中每个函数被调用时分别从这个栈占用一段区域,称为帧(frame)。%esp寄存器指向当前整个栈的栈顶,%ebp指向当前帧的帧底。上一级调用者的帧底被压入当前%ebp内容所指的地址,也就是当前帧的帧底位置保存了上一级调用者的%ebp指针值(帧底),而每个%ebp的前一个单元存放的就是当前函数的返回地址(它是由调用者在call指令中入的栈),原创 2010-01-17 16:57:00 · 2345 阅读 · 2 评论 -
C语言 数据类型修饰符与存储类修饰符
C语言允许修改简单数据类型的默认特征。这些数据类型修饰符主要改变允许的值的范围。数据类型修饰符之应用于数据,而不针对函数。程序员可以在变量、参数和函数的返回值里使用它们。某些数据类型修饰符能够同任何变量一起使用,而其他则只用于特殊类型的一个集合。① 数值常量修饰符:const和volatile编译器优化程序的能力依赖于多个因素,其中之一是程序里数据对象的相对持久性。默认时,程转载 2009-12-26 22:15:00 · 4930 阅读 · 0 评论 -
c 函数指针
c 函数指针 函数指针是什么? 一个函数占用一段连续内存。当调用一个函数时,实际上是跳转到函数入口地址,执行函数体的代码,完成后返回。 如何找到对应的入口地址? 这是由函数名来标记的,实际上,函数名就是函数的入口地址。 函数指针是一种特殊类型的指针,它指向一个函数的入口地址。 注意:除了void类型指针是无类型的指针外,其他所有指针都是有对应类型原创 2009-12-26 17:08:00 · 883 阅读 · 0 评论 -
整理volatile 的理解
整理volatile 的理解 volatile 关键字表示字段可能被多个并发执行线程修改。声明为 volatile 的字段不受编译器优化(假定由单个线程访问)的限制。这样可以确保该字段在任何时间呈现的都是最新的值。[从这里可以看出,如果使用了该修饰符,则应该是每次都从内存中读取的] volatile 关键字可应用于以下类型: 引用类型,指针类型(在不安全的上下文中),原创 2009-12-26 21:40:00 · 698 阅读 · 0 评论 -
C/C++中near和far的区别
C/C++中near和far的区别 关键字near和far受目标计算机体系结构的影响。目前编程中使用不多。 near关键字创建一个指向可寻址内存低端部分的目标指针。这些指针占用内存的单一字节,并且他们能够指向的内存单元被限制到256个位置,通常是在0x0000~0x00ff范围中。 int near * ptr; far关键字创建一个能够指向原创 2009-12-26 21:53:00 · 2104 阅读 · 1 评论 -
C89和C99标准比较
C89和C99标准比较 【编程爱好者论坛】 1、增加restrict指针 C99中增加了公适用于指针的restrict类型修饰符,它是初始访问指针所指对象的惟一途径,因此只有借助restrict指针表达式才能访问对象。restrict指针指针主要用做函数变元,或者指向由malloc()函数所分配的内存变量。restrict数据类型不改变程序的语义。 如果某个函数定义了转载 2010-01-01 16:17:00 · 1039 阅读 · 0 评论 -
openSSL AES 加密引擎代码分析
<br /><br /><br />SSL VPN 2010-01-29 11:12:31 阅读459 评论0 字号:大中小 订阅<br /> 本文以openssl-0.9.8l代码为基础,对openSSL中AES加密引擎的代码做一个分析,这里侧重于应用的角度对代码进行分析,有关aes加密算法的原理等有很多介绍(例如:http://zh.wikipedia.org/zh-cn/AES),不在本文的讨论范围之内。<br />AES的区块长度固定为128 位元,密钥长度则可以是128,192或2转载 2010-10-29 13:15:00 · 2764 阅读 · 1 评论 -
C++ 友元
友元函数(friend function)1. 什么是友元函数? 一个类的私有数据成员通常只能由类的函数成员来访问,而友元函数可以访问类的私有数据成员,也能访问其保护成员2. 友元函数的用处体现在哪里? 2.1 使用友元函数可提高性能,如:用友元函数重载操作符和生成迭代器类 2.2 用友元函数可以访问两个或多个类的私有数据,较其它方法使人们更容易理解程序的逻辑转载 2013-03-30 21:25:21 · 1638 阅读 · 0 评论 -
C++类的继承机制
C++类属性:public修饰类,表示为公共类,在程序任何地方可见;修饰类成员,该成员可以被该类访问(所有修饰都可以被该类访问,后面不再赘述),可以被该类实例化的对象访问;private修饰类,表示为私有类,不常见,我没用过;修饰类成员,该成员可以被该类的成员函数访问,不可以被该类的实例化对下直接访问;protected修饰类,表示为保护类型的类,限定只原创 2013-03-30 22:52:54 · 909 阅读 · 0 评论 -
类的私有成员变量和私有成员函数
私有成员变量:类的对象不能直接访问类声明的私有成员变量,否则破坏了信息隐藏的目的。 对象需要调用类的成员函数,达到访问类私有成员变量的目的。私有成员函数:一般属于internal的函数,被类中其他函数所调用,不对外提供接口。类对象是无法直接访问,也不应该直接访问。在C++中,为了防止某些数据成员或成员函数从外部被直接访问,可以将它们声明为private,这样编译原创 2013-03-30 20:22:26 · 2007 阅读 · 0 评论 -
C语言之回调函数个人笔记
C语言之回调函数个人笔记 什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。 为什么要使用回调函数? 因为可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件(如返回原创 2010-01-19 09:45:00 · 807 阅读 · 1 评论 -
make的简单使用个人整理篇
make的简单使用个人整理篇格式:目标 〔属性。。。〕分隔符 〔依赖文件〕 〔;命令菜单〕{制表符>命令菜单} makefile根据符号tab来辨认命令 make命令的运行格式:make原创 2010-01-19 09:25:00 · 1575 阅读 · 0 评论 -
导弹拦截问题
/************************************************************************//*FileName:导弹拦截问题/*Creater:PenglueR/*Date:2009/07/15/*Comment:某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但该导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每原创 2009-07-15 09:25:00 · 1296 阅读 · 0 评论 -
C/C++ 谁拿了最多奖学金 ACM
/************************************************************************//*FileName:奖学金问题/*Author:PenglueR/*Date:2009/07/20/*Comment:Problem description 某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同: 1原创 2009-07-20 09:57:00 · 5538 阅读 · 0 评论 -
C++ 方砖问题
/************************************************************************//*FileName:方砖问题 /*Author:PenglueR/*Date:2009/07/21/*Comment:Problem description 用边长小于N的正方形方砖(注意,不要求所有的方砖大小相同,请看样例说明)不重叠地铺满N*N的原创 2009-07-21 15:46:00 · 1775 阅读 · 1 评论 -
导弹拦截问题ACM
/************************************************************************//*FileName:导弹拦截问题/*Author:PenglueR/*Date:2009/07/23/*Comment:Problem description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它原创 2009-07-23 15:16:00 · 2846 阅读 · 0 评论 -
C++典型贪心算法--找硬币问题
/************************************************************************//*FileName:Making Change/*Author:PenglueR/*Date:2009/07/23/*Comment:Problem description In the old days before everything was原创 2009-07-23 11:29:00 · 2539 阅读 · 0 评论 -
最大公约数
/************************************************************************//*FileName:最大公约数/*Author:PenglueR,PenglueR@gmail.com/*Date:2009/08/03/*Comment:Problem description 输入两个整数a,b(1≤a,b≤100000000),原创 2009-08-03 15:59:00 · 1132 阅读 · 0 评论 -
Turn the corner
Turn the corner Mr. West bought a new car! So he is travelling around the city. One day he comes to a vertical corner. The street he is currently in has a width x, the street he wants to turn to转载 2009-08-06 15:49:00 · 831 阅读 · 0 评论 -
C/C++ 整数划分问题
整数划分问题将一个正整数n表示成一系列正整数之和,n=n1+n2+n3+…nk(其中,n1>=n2>=…>=1,k>=1)如6;5+1;4+2,4+1+1;3+3,3………….…………..1+1+1+1+1+1 ////////////////////////////////////////////////////////////////////////转载 2009-07-07 18:39:00 · 2497 阅读 · 0 评论 -
C/C++ 已知中缀表达式,求后缀表达式及值
已知中缀表达式,求后缀表达式及值 ///////////////////////////////////////////////////////////#include using namespace std;struct ABC{ char data; struct ABC * next;};int main(){ char abc[100]=""; char resul原创 2009-07-07 18:41:00 · 1524 阅读 · 0 评论 -
C/C++ 最长平台问题 算法
已知一个已经从小到大排序的数组,这个数组中的一个平台就是连续的一串值相同的元素,并且这一串元素不能再延伸,例如在,1,2,2,3,3,3,4,5,5,6中,1,2. 2,3. 3. 3,4,5.5,6都是平台,试编写一个程序,接受一个数组,把这个数组中最长的平台找出来。再上述例子中3.3.3试最长平台。 ////////////////////////////////////////原创 2009-07-08 11:31:00 · 3424 阅读 · 1 评论 -
C/C++ 两数组最短距离
已知两个元素从小到大排列的数组x[]与y[],请编写一个程序算出两个数组元素彼此之间差的绝对值最小的一个数,此值称做数组的距离。如x[] 1,3,5,7,9 y[] 2,6,8.那么最短距离是1//////////////////////////////////////////////////////////////////////////////////////////////原创 2009-07-09 10:18:00 · 2310 阅读 · 0 评论 -
C/C++ 组合问题
找出从自然数1,2,。。。,n中任取r个数的所有组合。例如n=5,r=3的所有组合为:(1) 1,2,3 (2) 1,2,4 (3) 1,2,5 (4)1,3,4 (5) 1,3,5(6) 1,4,5 (7) 2,3,4 (8)2,3,5 (9) 2,4,5 (10) 3,4,5输入n=5,r=3 输出1- 5中所有3个数的组合////原创 2009-07-10 11:24:00 · 1455 阅读 · 2 评论 -
简单而又深刻的认识:原码、补码、反码
反码,补码 反码和补码的目的就是为了解决负数的问题 在计算机内,定点数有3种表示法:原码、反码和补码 所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。补码表示法规定:正数原创 2014-05-21 09:38:52 · 898 阅读 · 0 评论