自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 linux mint下安装thrift

首先,需要删除OpenJDK。  sudo apt-get purge openjdk*  安装oracle java 7,打开终端运行下面的命令:  sudo add-apt-repository ppa:eugenesan/java  sudo apt-get update  sudo apt-get install oracle-java7-installer

2014-05-26 18:41:46 988 1

原创 linux下编译clang, libc++, libc++abi,以及第二遍自举编译

最新的mint16,附带gcc4.8.1第一步:用gcc编译clang1. 下载llvm+clang最新版本。具体见http://clang.llvm.org/get_started.html2.mkdir build_with_gcccd build_with_gcc../llvm/configure --disable-a

2013-12-29 11:52:48 12520

原创 The New C++ -- 变量 (7. 左值,右值)

左值右值也是C++中的一个很常见也很重要的概念,但奇怪的是大部分教科书并不会详细提及。本系列文章中的很多地方都会提到左值右值,请务必仔细理解。左值(lvalue),源自于left-value,原本是指赋值号左边的值。右值(rvalue),源自于right-value,原本是指赋值号右边的值。例如,int var;var = 3;在给var这个变量赋值的这个表达式中,var

2012-02-10 12:46:37 1569 1

原创 The New C++ -- 变量 (6. 变量名的声明点和作用域)

一个变量名自从被声明或者被定义之后就可以应用了(例如sizeof和typeof需要变量声明,而地址操作符需要变量定义)。变量名可以开始被应用的那个点即变量的声明点。C++中变量的声明点即是在变量的声明或定义之后,而在变量的初始化之前。例如,int num_apples;int num_oranges = 4;int num_fruits = num_apples + num_orang

2012-02-10 12:34:45 990

原创 The New C++ -- 变量 (5. sizeof表达式,typeid表达式和地址操作符)

我们提到过变量名本身代表了变量的类型和变量的首地址,但这些只有编译器自己才知道。如果我们想在程序中知道每个变量名的类型,变量类型所占内存空间的大小和内存空间的首地址,我们可以通过sizeof表达式,typeid表达式和地址操作符来完成。sizeof表达式和typeid表达式我们之前讲过,语法是sizeof(类型)和typeof(类型)。但sizeof和typeof除了后面跟数据类型的名字之

2012-02-10 12:29:45 1112

原创 The New C++ -- 变量(4. const限定符和constexpr说明符 )

注意:constexpr为C++11标准,某些编译器可能还不支持该语法。我们已经知道了字面值常量的值是不可更改的,所以称之为常量。变量是内存中的一块存储空间,我们可以读写里面的内容。但有时候我们也需要一种机制能够阻止随意的修改一个变量的值,这时候我们就要用到const限定符(const-qualifier)。在定义或者声明一个变量的时候,const限定符可以放在我们前面讲过的类型说

2012-02-10 12:19:13 9480 5

原创 The New C++ -- 变量 (3. 变量的初始化)

我们知道当变量被定义之后,编译器就会在内存中预留一段存储空间。C++和C语言一样,当这段内存空间被预留出来之后,如果不是特殊情况(我们稍后再讲),编译器并不会将这段内存空间写入一个初始值。在我们给这个变量赋值之前,这段存储空间里的值是乱七八糟的随机值,他甚至可能是别的程序运行完毕后在这段存储空间留下的值。未初始化的变量是危险的,因为当你不小心使用了一个未初始化,也未赋值的变量,程序的运行结

2012-02-10 11:43:00 2206

原创 The New C++ -- 变量 (2. 变量的赋值和输入)

变量的赋值即是通过赋值操作符(=)将`=’右边的值赋值给左边的变量。当我们定义一个变量的时候,编译器会在内存中分配该变量的存储空间,变量的赋值即相当于将赋值操作符右边的值写到左边的变量所代表的内存存储空间去。例如,#include int main(){ int num_boys, num_girls, num_students; num_apples = 32; //1

2012-02-10 11:35:59 1538

原创 The New C++ -- 变量(1. 变量的声明和定义)

在C++中,不仅仅是变量才有名字,枚举(enumeration),函数(function),类(class),模板(template)等物件都有名字。在使用任何一个名字之前,必须要先对该名字表示的物件进行声明(declaration)或者定义(definition)。声明和定义这两个词的经常容易被混淆,有时用一个名字只需要该名字的声明就可以了,有时用一个名字需要该名字的定义。并且不同类型的物件(变

2012-02-10 11:30:53 1290

原创 The New C++ -- 变量(0)

在C++的程序中用到的大部分数据是动态变化的,字面值常量并不适合,这时候我们就要用到变量(variable)。在C++中,我们把内存中的一段连续的存储空间叫做一个对象(object)(注脚:这里的对象和面向对象(object-oriented)中的对象不是一个概念。面向对象里的对象是指现实世界中的物体,而这里的对象指的是一段内存空间。)。变量指的是一个有名字的对象,即内存里面的一段有名字的连续的存

2012-02-10 11:13:41 906

原创 The New C++ -- 基本数据类型和字面值常量 (8. 字符串字面值常量)

顾名思义,字符串就是将字符串起来。如果你已经理解了字符型和字符字面值常量,那么字符串字面值常量就不难理解了。字符字面值常量是由单引号将一个字符引起来,而字符串字面值常量是由双引号将一些字符引起来。字符串里的特殊字符的例如转义字符(除了单引号和双引号转义字符),八进制转义字符,十六进制转义字符,\u和\U所表达的意义和字符字面值常量都是一样的。C++在所有的字符串后面多加上一个字符 '\0'

2012-02-10 10:45:54 1868

原创 The New C++ -- 基本数据类型和字面值常量 (7. 浮点型和浮点字面值常量)

浮点型用来表示实数,他的底层存储和整型不同,所以不被归纳到整型中。浮点数之所以称为浮点数,是因为他的小数点是``浮动''的。他的底层存储包括两部分,第一部分是包括小数点在内的实数部分,例如123.456,第二部分存储小数点向左或者向右浮动几位。就拿123.456为例,小数点如果向左浮动15位,就表示123.456 x 10^{-15}这个数,而向右浮动15位,就表示123.456 x 10^{15

2012-02-10 10:24:28 1762

原创 The New C++ -- 基本数据类型和字面值常量 (6. 布尔型和布尔字面值常量)

布尔型bool(源自Boolean 注脚:Boolean源自英国数学家George Boole,是布尔逻辑的发明者。),有时候也叫逻辑型。C++标准并没有规定布尔型需要占用的内存大小,是实现定义的行为。但大部分编译器只用一个字节来存储。无论布尔型占用多大的内存空间,他只支持两种值:真和假。这一点完全不像其他的整型。布尔字面值常量也只有两种:true和false。我们已经提到过,布尔型,各类

2012-02-10 10:11:47 971

原创 The New C++ -- 基本数据类型和字面值常量 (5. 宽字符类型和宽字符字面值常量)

注意:本章节内容设计C++11,其中部分内容可能还没有被所有编译器支持。随着计算机技术的发展,软件国际化是不可避免的趋势。ASCII所支持的最多256种字符已经远远不能满足国际化的需求。对我们来说,仅已知的汉字就至少有9万多个!当然,要支持更多的字符就需要有更大的字符类型。C++定义了三种宽字符类型,char16_t,char32_t和wchar_t。小知识:你也许好奇为什么这些命

2012-02-10 09:39:58 1792

原创 The New C++ -- 基本数据类型和字面值常量 (4. 字符型和字符字面值常量)

你也许会惊讶,字符型,以及我们将在下两小节讲述到的宽字符型和布尔型,在C++标准中都被归纳为整型。我把他们分开讲述是因为他们或多或少有一些和上一节提到的整型不太一样的性质。C++的最基本字符型是char(源自character)。但是char不像int是有符号的,char可能是有符号的,也可能是无符号的,是编译器自定义行为。如果想让程序不依赖于不同的编译器,C++提供了signed char和un

2012-02-10 09:20:55 1081 1

原创 The New C++ -- 基础知识

如果你已经迫不及待的想用C++写一些有趣的东西了,你可能会失望这一章仍然并不涉及正式的程序设计。但正所谓千里之行始于足下,本章介绍的是C++最基础的概念和知识。虽然对大多数人来说这些基础知识比较枯燥乏味,本章的内容却是十分重要的。为了让枯燥的东西稍微有趣一点,我会尽量穿插一些简单C++程序的例子和练习。

2012-02-09 18:46:36 677

原创 The New C++ -- 目录

前言第一章. 名字没想好,大概会介绍基本输入输出cout, cin第二章. 基础知识2.1 基本数据类型和字面值常量  2.1.1 整型和整数字面值常  2.1.2 sizeof表达式和typeid表达式  2.1.3 字符类型和字符字面值常量  2.1.4 宽字符类型和宽字符字面值常量  2.1.5 布尔型和布尔字面值常量  2.1.6 浮

2012-02-09 17:38:32 793 1

原创 The New C++ -- 基本数据类型和字面值常量 (3. sizeof表达式和typeid表达式)

C++提供了一些机制让我们知道一个编译器中的整型(或者其他任何类型)占多少内存空间,那就是sizeof表达式。sizeof(类型)返回该类型在内存中占用的空间(单位为字节)。例如下面的程序,#includeint main(){ std::cout << sizeof(short int) << " " << sizeof(int) << " " << size

2012-02-09 17:06:59 933

原创 The New C++ -- 基本数据类型和字面值常量 (2. 整型和整数字面值常量)

C++中最常用的整型就是int(源自英文integer)。但C++不仅支持一种整数类型,还有短整型(short int),长整型(long int),和超长整型(long long int)。不同的整型所占用的内存空间大小不同,当然他们所能表达的最大整数值和最小整数值也不一样。从历史角度来讲,int所占用的内存空间大小一般和处理器的自然字长一样,是最自然的整型。所以int一般也被我们称为整型。整型

2012-02-09 16:47:54 2199

原创 The New C++ -- 前言

写这一系列C++教程的想法在我头脑中酝酿了很久。C++优秀的教程很多,写一个新的C++系列教程很可能是一个十分出力不讨好的事情。但是我却有几条重要的写作理由。1. 目前优秀的C++书籍多为E文。E文的翻译本身就良莠不齐,读起来也不是很顺畅。2. 国产的多数C++教程都很陈旧,也有很多很多错误(特别是很多书籍作者既不是资深程序员,对C++标准理解也不深)。3. C++11标准的推

2012-02-09 15:50:32 802 1

原创 The New C++ -- 基本数据类型和字面值常量 (1)

一个计算机程序的基本操作过程包括读入数据,对数据进行处理,然后再输出相应的结果(输出数据)。但是数据是什么呢?如何在计算机中存储以及表示数据呢?这一切都是由数据的类型决定的。C++中,不同的数据类型在计算机中的存储形式和表示方法,以及我们可以对该类型的数据进行的操作都不尽相同。这很容易理解,例如我们可以对整数或实数类型的数据进行加减乘除的运算操作,但却不能对字符串类型的数据进行这些操作。反之,我们

2012-02-09 15:30:17 907

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除