C++ primer 数据类型的学习笔记

原创 2004年10月18日 16:24:00

第三章

数据类型

128u 无符号数 128 1024U 无符号数1024 u大小写均可 1L long 形 1 8Lu 无符号long型 8 垂直制表符 /v 宽字符 wchar_t L'a'

变量

.对象名一般用小写字母例如我们往往写成index 而不写INDEX 一般把Index 当作类型名而INDEX 则一般被看作常量值通常用预处理器指示符#define 定义 .标识符一般使用助记的名字——即能够对程序中的用法提供提示的名字如 on_loan 或salary 至于是应写成table 还是tbl 这纯粹是风格问题不是正确性的 问题 .对于多个词构成的标识符习惯上一般在每个词之间加一个下划线或内嵌的每 个词第一个字母大写例如一般会写成student_loan 或studentLoan 而不是 studentloan 我在这里已经列出了所有三种形式一般有面向对象背景的人 ObjectOrientedBackground 喜欢用大写字母而有C 或过程化背景的人 C_or_procedural_background 则喜欢下划线再次说明使用isa isA 或is_a 只是个风格问题与正确与否无关 一个简单的定义指定了变量的类型和标识符它并不提供初始值如果一个变量是在全局域global scope 内定义的那么系统会保证给它提供初始值0 如果变量是在局部域local scope 内定义的或是通过new 表达式动态分配的则系统不会向它提供初始值0 这些对象被称为是未初始化 的uninitialized 未初始化的对象不是没有值而是它的值是未定义的undefined C++支持两种形式的初始化第一种形式是使用赋值操作符的显式语法形式 int ival = 1024; string project = "Fantasia 2000"; 在隐式形式中初始值被放在括号中 int ival( 1024 ); string project( "Fantasia 2001" );

指针类型

在下面的例子中lp 是一个指向long类型对象的指针而lp2 则是一个long 型的数据对象不是指针 long *lp, lp2; 当程序员后来想定义第二个字符串指针时他会错误地修改定义如下 // 喔: ps2 不是一个字符串指针 string* ps, ps2; void* 类型指针它可以被任何数据指针类型的地址值赋值函数指针不能赋值给它 // ok: void* 可以持有任何指针类型的地址值 void *pv = pi; pv = pd; 指向指针的指针,例子
#include <iostream> using namespace std;
int main(){ int a=20; int *p=&a; cout<<" a: "<<a<<endl<<"*p: "<<*p<<endl; int **pp=&p; // &p 指向指针的地址 cout<<"**pp:"<<**pp<<endl; //两次解引用 return 0; }
指针加2 意味着给指针持有的地址值增加了该类型两个对象的长度例如假设一个char 是一个字节一个int 是4 个字节double 是8 个字节那么指针 加2 是给其持有的地址值增加2 8 还是16 完全取决于指针的类型是char int 还是double

字符串类型

转换 string 为 C-style 字符串: const char *str=string1.c_str() ^^^^^

const 限定修饰符

const int bufSize = 512 // 缓冲区大小 可以防止这种错误: if ( bufsize = 0 ){...} const double *cptr; cptr 是一个指向double 类型的const 对象的指针我们可以从右往左把这个定义读为 cptr 是一个指向double 类型的被定义成const 的对象的指针此中微妙在于cptr 本 身不是常量我们可以重新赋值cptr 使其指向不同的对象但不能修改cptr 指向的对象 不能修改 const 指针所指向的值 char *str="llll"; const char *p=str; *p='4';//不正确

引用类型

int ival = 1024; int *pi = &ival; // ok: refPtr 是一个指向指针的引用 int *&ptrVal2 = pi; 一旦引用已经定义它就不能再指向其他的对象 double dval = 3.14159; // 仅对于const 引用才是合法的 const int &ir = 1024; const int &ir2 = dval; const double &dr = dval + 1.0;

布尔类型

枚举类型

enum enumtest{a,b,c,d} enum enumtest2{a=1,b=3} >>END<< //

c++ Primer学习笔记

第一章 文件头及声明 关于extern 使用extern 声明而不定义,它是说明变量定义在程序其他地方   全局不初始化的extern int i; 是声明不定义;只要声明并且有初始化式,那么...
  • leiming32
  • leiming32
  • 2012年12月17日 23:57
  • 5216

C++ Primer 学习笔记(持续更新......)

本笔记主要是一个记录,整理和总结一下C++学习过程中的知识点。 struct和class 区别:两个关键字都是进行类的定义。struct也可以定义类,和class定义的类唯一不同之处就在于默认的初始访...
  • u012931582
  • u012931582
  • 2017年03月12日 22:05
  • 616

C++primer第五版第一章学习笔记

1. 函数的定义: return type, function name, parameter list, function body // int为返回类型,main为函数名,小括号包围的是可以为...
  • sunhero2010
  • sunhero2010
  • 2015年11月03日 15:30
  • 523

《C++ Primer Plus》学习笔记1

C++ Primer Plus》学习笔记1 第二章、开始学习C++ 1、控制符endl 如果显示字符串时,在字符串中包含换行符,而不是在末尾加上endl,这样可以大大减少输入量;如果是要生成...
  • u010555622
  • u010555622
  • 2014年07月15日 01:00
  • 1285

C++ Primer学习笔记(10)——如何读写文件

我们常接触的 cin cout是从控制窗口读写数据,往往是从键盘输入、显示到显示器上,是交互的方式之一。然而,通常还需要读或者写已命名的文件;以及访问内存中的数据。那么C++如何读写文件?...
  • zhangyumumu
  • zhangyumumu
  • 2015年07月05日 10:27
  • 314

C++ Primer(第五版) 学习笔记

C++语言基础: 1. C++11增加了long long 类型,表示最小尺寸为64的整数。 2. 浮点数运算使用double,通常运算速度更快。 3. 超过int容量时使用long long类型,无...
  • zxh2075
  • zxh2075
  • 2016年10月25日 15:56
  • 468

C++ Primer 学习笔记之 --- 学习总结

vector v1(10); //v1 有10个元素,每个值为0 vector v2{10}; //v2 有1个元素,每个值为10 vector v3(10,1); //v1 有10个元素,每个值...
  • xue_huashan
  • xue_huashan
  • 2016年06月21日 14:10
  • 246

C++ Primer 学习笔记(第一章)

第一章  开始 1.1 编写一个简单的C++程序 1.类型、变量和对象的概念 int是一个整型,其实就是“类型”,也就是“类”,系统定义好的。 OpenCV中的Mat型,也是一种类型,也是类。...
  • Zlase
  • Zlase
  • 2017年10月25日 00:30
  • 91

C++ Primer Plus第六版-第八章学习笔记

本章学习C++不同于C的函数新特性,这是进入C++领域的重要一章,其内容包括:内联函数、按引用传递变量、默认的参数值、函数重载(多态)、模板函数等; 1、内联函数; C++中要使用函数必须提供定义...
  • sbcypress
  • sbcypress
  • 2016年01月04日 10:07
  • 237

C++primer第五版第二章学习笔记

基本内置类型:算数类型、空类型 算数类型:整型、浮点型 short、int、long、long long的区别:存放数据时所占用的内存大小不一样,sizeof(short) signed和un...
  • sunhero2010
  • sunhero2010
  • 2015年11月03日 20:18
  • 361
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ primer 数据类型的学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)