C/C++
文章平均质量分 55
hnzmdzcm
这个作者很懒,什么都没留下…
展开
-
指针与引用
摘自「高质量c++编程」 指针与引用,在More Effective C++ 的条款一有详细讲述,我给你转过来 条款一:指针与引用的区别 指针与引用看上去完全不同(指针用操作符‘*’和‘->’,引用使用操作符‘。’),但是它们似乎有相同的功能。指针与引用都是让你间接引用其他对象。你如何决定在什么时候使用指针,在什么时候使用引用呢? 首先,要认识到在任何情况下都不转载 2011-11-28 12:39:22 · 398 阅读 · 0 评论 -
C/C++的static成员
C/C++的static成员1.静态全局变量static声明的变量,可以作为静态全局变量,静态全局变量存储在系统的全局数据区,而非static变量如果是声明的变量存储在栈区,如果是通过new/malloc分配的则存储在堆区.关于堆和栈存储的区别,我会在后续文章跟进.因为存储在全局数据区,所以这个变量是全局的,看以下代码:?001转载 2012-08-31 20:27:20 · 747 阅读 · 0 评论 -
C++笔记(1): 预处理/编译/汇编/链接
C++笔记(1): 预处理/编译/汇编/链接使用g++编译c/c++程序时,假设程序无错,我们通常直接使用以下命令:?001g++ hello.cpp这样系统会自动生成默认可执行文件a.out.或者使用?001g转载 2012-08-31 20:25:04 · 750 阅读 · 0 评论 -
register、volatile、restrict 三关键字的用法
原文地址:register、volatile、restrict 三关键字的用法 – RaymondAmos的技术专栏 – CSDN博客.register 使用修饰符register声明的变量属于寄存器存储类型。该类型与自动存储类型相似,具有自动存储时期、代码块作用域和内连接。声明为register仅仅是一个请求,因此该变量仍然可能是普通的自动变量。无论哪种情况,用转载 2012-08-31 21:04:47 · 883 阅读 · 0 评论 -
如何阅读复杂的C定义/声明
就算是非常有经验的C程序员,也对那些比简单数组/指针更复杂一些的声明感到头疼。比如说,下面这个是一个指针的数组,还是一个数组的指针?int *a[10];下面这货到底是什么?int (*(*vtable)[])();当然了,这货是一个指针,指向一个数组,这个数组的每个元素是一个指针,指向一个函数,函数的返回值类型是int :)这篇短文希望能够教会你一个非常转载 2012-09-01 12:20:26 · 1141 阅读 · 0 评论 -
extern “C”
在很多C/C++头文件中,你可能会经常看到使用extern “C”{}包含起来的代码。这种语法的存在是为了使C和C++代码能够兼容。兼容?C++对C本来不就是兼容的吗?确实,在语法层面,C++支持几乎所有C语法。但这里的兼容是目标文件或者库级别的兼容,包括两种情况下的兼容。一种是,在C++代码中调用已经存在的C代码写成的库;另一种是,使用C编写代码,而希望这些代码能够使C++可以调用。 若想转载 2012-08-31 19:39:52 · 746 阅读 · 0 评论 -
strcpy/strncpy/strcat/strlen等源码
strcpy/strncpy/strcat/strlen等源码1.strcpy的源码 From Android代码如下:?001002003004005006char*strcpy(char*dst, constchar *src){转载 2012-08-31 20:22:39 · 703 阅读 · 0 评论 -
指针和引用以及迭代器入门
指针和引用以及迭代器入门一.关于指针指针一直被C/C++学习者认为是一个最难的点之一.指针本身其实是一种变量类型,它的值是一个内存地址,而这个地址的内存单元存储着数据.32位机器上通常指针大小为4.也许有人会问既然都是内存地址,为什么要区分指针的类型呢,比如int指针和double类型指针有何区别?这个问题的答案是因为给定内存地址,系统需要根据类型来解释内存内容,int型占用4转载 2012-08-31 20:28:14 · 1208 阅读 · 0 评论 -
字节序(Endian),大端(Big-Endian),小端(Little-Endian)
在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领 域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正 确的编/译码从而导致通信失败。目前在各种体系的计算机中通常采用的字节存储机制主要有两种:Big-Endian和Little-Endian,下面先 从字节序说起。转载 2012-08-31 20:06:24 · 683 阅读 · 0 评论 -
关于C/C++的字节对齐
关于C/C++的字节对齐最近研究C++的数据类型和数据大小时发现,字节对齐实际上是一个C/C++程序员无法忽视的一个问题.所以进行了初步的研究.1.为什么会出现内存对齐问题-从x86 CPU架构说起相信绝大多数计算机系和软件学院的学生都学过计算机组成原理这门基础课程,所以不作入门引导了,没有相关背景的可以补补相关课程资料.常有人问我,既然是按字节寻址方式,为何会出现字节对齐问题转载 2012-08-31 20:19:36 · 715 阅读 · 0 评论 -
每日三省吾身
for(everyday){ if(studying()) knowledge++; if(programing()) skill++; if(thinking()) progress++; if(play()) joy++, somthing--;}原创 2012-09-05 18:56:20 · 1157 阅读 · 0 评论 -
提高VS2010运行速度的技巧
买了最新的笔记本,双核,2G,5400转;装了VS2010,做VC++开发;新建立了工程,太卡了,硬盘不停地读盘,有时候VS就不响应了;任务管理器,CPU和内存都不高,为何?原因就是VS2010不停地读硬盘导致的;写代码2/3的时间都耗在卡上了,太难受了;研究发现,VS2010如果你装了VC等语言,那么它就会自动装SQL Server2010的功能,用于智能转载 2012-10-05 14:54:49 · 685 阅读 · 0 评论 -
How The Kernel Manages Your Memory(内核如何管理程序的内存)
转载自:http://duartes.org/gustavo/blog/post/how-the-kernel-manages-your-memoryAfter examining the virtual address layout of a process, we turn to the kernel and its mechanisms for managing us转载 2012-10-06 00:05:29 · 1109 阅读 · 0 评论 -
Page Cache, the Affair Between Memory and Files
转载自:http://duartes.org/gustavo/blog/post/page-cache-the-affair-between-memory-and-filesPreviously we looked at how the kernel manages virtual memory for a user process, but files and I/O were le转载 2012-10-06 00:09:37 · 854 阅读 · 0 评论 -
关于面向对象一些名词的定义(C++)
类(class):即类型,就是程序员自定义类型,其区别于语言的内置类型。类定义了该类型的对象所包含的数据和该类型的对象可以执行的操作。类是不占据内存空间的。在生活中类就像做月饼的模子。对象(object):就是具有类型的一段内存区域。对于面向对象即实例,是类的实例。对象是占据内存空间的。在生活中对象就像用模子做出来的月饼。抽象类(abstract class):特殊的类原创 2012-10-06 13:34:18 · 985 阅读 · 0 评论 -
Anatomy of a Program in Memory(程序运行时内存结构)
转载自:http://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memoryMemory management is the heart of operating systems; it is crucial for both programming and system administration. In t转载 2012-10-05 23:59:19 · 1401 阅读 · 0 评论 -
C++介绍维基百科
C++维基百科,自由的百科全书跳转到: 导航、 搜索 跳过字词转换说明汉漢▼▲为了阅读方便,本文使用全文手工转换。转换内容:下面采用电脑和信息技术组全文转换 [编辑]以下为本条目单独的全文转换,请从本页面进行编辑:简体:虚函数;繁體:虛擬函式; 当前用字模式下显示为→虚函数简体:运算符重载;繁體:運算子多載; 当前用字模式下显转载 2012-09-24 19:06:19 · 2789 阅读 · 0 评论 -
C语言介绍维基百科
C语言维基百科,自由的百科全书跳转到: 导航、 搜索跳过字词转换说明汉漢▼▲为了阅读方便,本文使用全文手工转换。转换内容:下面采用电脑和信息技术组全文转换 [编辑]以下为本条目单独的全文转换,请从本页面进行编辑:原文:文件;简体:文件;繁體:档; 当前用字模式下显示为→文件原文:递归;简体:递归;繁體:遞迴; 当前用字模式转载 2012-09-24 19:12:34 · 3467 阅读 · 0 评论 -
itoa函数
/*itoa函数,有点烂自己都懒得看*/#include int myitoa(int n, char *str){ int base = 1; int i = 0; int len; int size; if(n == 0)//数位0时 { str[0] = '0'; str[1] = '\0'; return 0; } if(n原创 2012-08-30 23:05:24 · 542 阅读 · 0 评论 -
atoi函数
/*实现atoi函数*/#include #define MAX (2147483647)//越界最大值#define MIN (-2147483647)//越界最小值int myatoi(const char *str){ int get_num = 0; int base = 1; if(str == NULL) return 0; if( ((str[0] = '0')原创 2012-08-30 20:27:54 · 571 阅读 · 0 评论 -
C++实现链表
/*关于链表如果感觉很迷惑就画图,这样理解起来会更容易 * */#include using namespace std;typedef int T;class List//链表类{ struct Node//节点类 { T data;//节点里的数据 Node* next;//指向下一个节点的指针 Node(const T& d =原创 2012-07-18 21:25:37 · 440 阅读 · 0 评论 -
IT名词备忘录——汇编
32位计算机中的位数指的是CPU一次能处理的最大位数。32位计算机的CPU一次最多能处理32位数据,例如它的EAX寄存器就是32位的,当然32位计算机通常也可以处理16位和8位数据。在Intel由16位的286升级到386的时候,为了和16位系统兼容,它先推出的是386SX,这种CPU内部预算为32位,外部数据传输为16位。直到386DX以后,所有的CPU在内部和外部都是32位的了。bit转载 2011-12-09 01:21:53 · 1203 阅读 · 0 评论 -
const关键字定义指针
------------------------------------------1、 const int numm = 500;1.1、int num = 1000;2、 const int* a = &numm;3、 int const *a = &numm;4、 int * const a = #5、 const int* const a = &numm;原创 2012-06-02 16:29:16 · 761 阅读 · 0 评论 -
STL初探
STL(Standard Template Library, 标准模板库), 是由惠普实验室开发的一系列软件的统称。1994年夏季经过C++标准委员会的投票,决定将STL正式纳入C++标准化进程中。目前,STL是一个具有工业强度的、高效的C++程序库。总的来说,STL的构成可以概括为“3大主体,6大组件,13个头文件”。所谓“13个头文件“是指在C++标准中STL被组织在1原创 2012-06-02 16:29:58 · 819 阅读 · 0 评论 -
c++函数指针
像声明函数一样,定义函数指针,不同在于需要啊函数名改成"(*指针名)"的形式例如:----------------------------------------------------void sort(int a[], int n); //sort函数void (*p)(int a[], int n) = NULL; //p就是指向void (int a[], int n)类型原创 2012-06-02 16:33:39 · 351 阅读 · 0 评论 -
C++变量初始化规则
当定义没有初始化式的变量时,系统有时候会帮我们初始化变量。这时,系统提供什么样的值取决于变量的类型,也取决于变量定义的位置。内置类型变量是否自动初始化取决于变量定义的位置。在函数体外定义的变量都初始化成 0,在函数体里定义的内置类型变量不进行自动初始化。注意:使用了未定义行为的程序都是错误的,即使程序能够运行,也只是巧合。永远不要以来未定义行为!!变量名:要使用易懂原创 2012-06-02 16:27:41 · 675 阅读 · 0 评论 -
字符数组初探
字符数组非常特殊,要牢记。字符数组既可以用一组由花括号括起来、逗号隔开的字符字面值进行初始化。例如:char my_char1[3] = {'a', 'b', 'c'};//此时my_char1数组的维数是3。也可以用一个字符串字面值进行初始化,注意字符串字面值包含一个额外的控制符(null)。例如:char my_char2[4] = "abc";//此时原创 2012-06-02 16:36:45 · 598 阅读 · 0 评论 -
printf和scanf函数
一、printf(),格式化打印输出函数---------------------------------------------int i = 10;printf("%d\n", i);//格式串双引号里的是%d是格式占位符,就是将后面对应的变量按相应的格式输出---------------------------------------------%d,%x,%o分别表原创 2012-07-06 22:31:00 · 842 阅读 · 0 评论 -
如何强制访问c++私有成员
前几天笔试adobe,出了这样一个题,当时只想到通过指针的偏移量来访问,但是由于对C++的类对象布局不是很有把握,就随便写了个答案,今天上百度搜了下,发现好几种方法,拿出来一起分享。 先看一个类 #include class A { private: char *str; public: A(): str("转载 2012-07-16 22:55:09 · 698 阅读 · 0 评论 -
C/C++:堆与栈
原作者不祥 堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于转载 2012-07-16 23:37:15 · 584 阅读 · 0 评论 -
C++的沉迷与爱恋(侯捷)
C++的沉迷与爱恋(侯捷) http://blog.csdn.net/kenlinyh/archive/2005/08/18/458044.aspx作者:侯捷 1998.09.28 发表 每年的 09/28 於我都是一个特殊的日子 -- 不只是因为教师节。今年很特殊地没有普天同庆,那麽我就写篇文章自己庆祝一下好了。 我於今年七月发表了一本着作 和转载 2012-07-16 23:39:04 · 2177 阅读 · 0 评论 -
C++之父Bjarne Stroustrup印象
C++之父Bjarne Stroustrup印象 C++的背影 ——C++之父Bjarne Stroustrup印象 左轻侯 2002.11.4 http://www.wushuang.net 热爱C++的朋友请不要误会,我并不是在暗示“C++已经日薄西山”,或者任何类似的意思。从语义上来说,C++作为一门编程语言,当然不会转载 2012-07-16 23:40:40 · 2419 阅读 · 0 评论 -
C++内存管理操作详解
Bill Gates 曾经失言: 640K ought to be enough for everybody — Bill Gates 1981 C++程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。转载 2012-07-16 23:43:14 · 804 阅读 · 0 评论 -
C语言实现所有格式文件复制
#include int main(int argc, char* argv[]){ if(argc != 3) { printf("请输入正确的格式:\n%s 源文件名 新文件名\n", argv[0]); return 1; } FILE* pf = fopen(argv[1], "rd"); F原创 2012-07-12 20:22:55 · 972 阅读 · 0 评论 -
C++实现所有文件格式复制
#include #include using namespace std;//加密函数void jiami(char* p, int n){ for (int i = 0; i < n; i++) { ++*p++;//使文件中的每一个字节加一 }}int main(int argc, char* argv[]){原创 2012-07-17 14:27:10 · 547 阅读 · 0 评论 -
proc学习笔记
proc是oracle提供的预编译嵌入sql语句的c程序的一个编程工具原创 2013-07-08 23:38:23 · 4252 阅读 · 0 评论