c++学习
文章平均质量分 70
dypwj0932
IT门徒。
展开
-
C潜规则篇之防止重定义
C程序编译时常出现类似xxx redefinition错误,除了模块间的命名冲突(命名污染及static),问题多数与头文件管理有关。大型C工程的头文件管理很麻烦:C源文件往往包含很多头文件,头文件又包含其他头文件,形成复杂的嵌套包含;C没有严格限定源文件和头文件的功能边界,二者都可以包含全局变量和函数等实体定义。这都可能导致类型或实体定义被重复包含和展开,使编译器抛出重定义错误。解决重定转载 2014-03-16 17:53:44 · 2003 阅读 · 0 评论 -
C++STL源码剖析代码
stl_config.h 1. // Filename: stl_config.h 2. 3. // Comment By: 凝霜 4. // E-mail: mdl2009@vip.qq.com 5. // Blog: http://blog.csdn.net/mdl13412 6. 7. /*转载 2014-06-05 20:18:06 · 1563 阅读 · 0 评论 -
Placement New的使用的完整总结版
今天看STL源码遇到一个问题: template inline void _Construct(_T1* __p, const _T2& __value) { new ((void*) __p) _T1(__value);} 上网搜到了一些文章,分享了: 原帖地址: http://www.ksarea.com/articles/20080124_cc.html转载 2014-06-05 21:23:12 · 1561 阅读 · 1 评论 -
第一章:C穿越时空的迷雾
一:容易混淆的const关键字const并不能把变量变成常量!在一个符号前加上const限定符只是表示这个符号不能被赋值。也就是它的值对于这个符号来说是只读的,但它并不能防止通过程序的内部(甚至外部)的方法来修改这个值。const最有用之处就是用它来限定函数的形参,这样该函数将不会修改实参指针所指的数据,但其他的函数却可能会修改它。列个const关键字并不真正表示常量的例子:con原创 2014-03-24 23:29:53 · 527 阅读 · 0 评论 -
关于2014年4月腾讯招实习生2面的一个简单问题
一个五位数,ABCDE*4=EDCBA,求出这样的五位数。因为这是个五位数,那么A只能为1,2。如果A=1,那么4*E不能得到尾数为1的数,很容易推断出A=2,则E=8。那么可以确定这个五位数的范围。20008到25000;从而减少循环次数。#include using namespace std;int main(){ long data; int A,B,C,D,E; i原创 2014-04-03 22:42:49 · 651 阅读 · 0 评论 -
C/C++语言二维数组的传参方法总结
C/C++语言将二维数组作为参数传递容易使人迷惑且易出错,本文将常用的几种方法列出,以方便用时查阅。三种方法总结如下(GCC验证成功):方法一:形参为二维数组并给定第二维长度 此方法是最简单最直观的方法,形参与实参一样,容易理解。举例:[cpp] view plaincopy#include void su转载 2014-04-02 22:08:15 · 811 阅读 · 0 评论 -
C++编程学习50个经典网站!
C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。 1、http://snippets.dzone.com/tag/c/ --数以千计的有用的C语言源代码片段 2、http:转载 2014-04-17 21:28:47 · 874 阅读 · 0 评论 -
c/c++中内存区域划分大总结!!!
转载自:http://developer.51cto.com/art/201106/270341_all.htm C++作为一款C语言的升级版本,具有非常强大的功能。它不但能够支持各种程序设计风格,而且还具有C语言的所有功能。我们在这里为大家介绍的是其中一个比较重要的内容,C++内存区域的基本介绍。一. 在c中分为这几个存储区1.栈由编译器自动分配释放转载 2014-04-17 21:26:49 · 595 阅读 · 0 评论 -
C++常见面试题
希望这个贴子能给正在找工作的朋友一点帮助.SIZEOF 题目:如果代码里面有 while(*p) 判断字符串结束的,要用 *p!='/0' 代替。1)sizeof相关系列问题, const相关系列问题a. 对于 struct s{char a;int b} sizeof(s) = 8 因为内存对齐 b. 对于 int a[200] sizeof(a) = 200* siz转载 2014-03-10 22:47:36 · 592 阅读 · 0 评论 -
strlen和sizeof的区别。
一、sizeof sizeof(...)是运算符,而不是一个函数。 一个简单的例子:int a;cout 在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的转载 2014-03-15 22:32:26 · 435 阅读 · 0 评论 -
char s[]字串和char *s字串有什麼差別? (C/C++) (C)
AbstractC語言有兩種字串宣告方式char s[]和char *s,兩者有什麼差異呢?Introductionchar s[] = "Hello World";char *s = "Hello World";皆宣告了s字串,在C-style string的函數皆可使用,但兩者背後意義卻不相同。char s[] = "Hello World转载 2014-03-10 21:37:55 · 896 阅读 · 0 评论 -
类对象占用内存问题。
1.一个类对象所占的空间大小只取决于该对象中数据成员所占的空间,而与成员函数无关。2.不论是否用inline声明,成员函数代码段都不占用对象的存储空间,用inline声明的作用是在调用该函数时,将函数的代码段复制插入到函数调用点,而若不用inline函数,流程转到函数代码段的入口地址,在执行完该函数代码段后,流程返回函数调用点处。原创 2014-03-17 21:34:47 · 1086 阅读 · 0 评论 -
c++中const的作用!!!
const给人的第一印象就是定义常量。(1)const用于定义常量。 例如:const int N = 100;const int M = 200; 这样程序中只要用到 N、M 就分别代表为整型100、200,N、M 为一常量,在程序中不可改变。 但有人说他编程时从来不用const定义常量。我相信。但他是不懂得真正的编程艺术,用const定义常量不仅转载 2014-02-23 21:40:38 · 621 阅读 · 0 评论 -
const char*, char const*, char*const的区别
const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。 事实上这个概念谁都有,只是三种声明方式非常相似很容易记混。 Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读。 char * const cp; ( * 读成 pointer to转载 2014-02-23 21:31:22 · 480 阅读 · 0 评论 -
关于sizeof,更详细的了解sizeof。。
在百度的时候发现了这一段讲解:故而引用过来。SizeOf Pascal的一种内存容量度量函数: 用法: Var a : array[1..10000] of longint; Begin Writeln(SizeOf(a)); End. 输出:40000 如果定义Integer,则输出:20000 c语言中判断数据类型长度符转载 2014-03-15 23:51:26 · 617 阅读 · 0 评论 -
assert()函数的用法总结
assert()函数用法总结 assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include assert.h>void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终转载 2014-06-10 22:26:15 · 620 阅读 · 1 评论