﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-luolin-随笔分类-C++</title><link>http://www.blogjava.net/luolin/category/26255.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 28 Sep 2007 20:20:17 GMT</lastBuildDate><pubDate>Fri, 28 Sep 2007 20:20:17 GMT</pubDate><ttl>60</ttl><item><title>C++数据类型</title><link>http://www.blogjava.net/luolin/archive/2007/09/29/149404.html</link><dc:creator>懒猪的技术blog</dc:creator><author>懒猪的技术blog</author><pubDate>Fri, 28 Sep 2007 17:38:00 GMT</pubDate><guid>http://www.blogjava.net/luolin/archive/2007/09/29/149404.html</guid><wfw:comment>http://www.blogjava.net/luolin/comments/149404.html</wfw:comment><comments>http://www.blogjava.net/luolin/archive/2007/09/29/149404.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/luolin/comments/commentRss/149404.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/luolin/services/trackbacks/149404.html</trackback:ping><description><![CDATA[<p>1.文字常量(literal constant)<br />
&nbsp;&nbsp;&nbsp;&nbsp; char,int,short,long,float,double,long double,boolean<br />
&nbsp;for example: 128u,1024L,7LU,3.14f,'a',"aa",true<br />
转义序列：一部分不可打印的字符，如换行，制表，单引号，双引号等。<br />
(\n,\t,,\v,\b,\r,\f,\a,\\,\?,\',\")<br />
宽字符文字：字符文字前面加上L，例：L'a'。宽字符常量用来支持某些语言的字符集合如汉语，日语这些语言中的某些字符不能用单个字符来表示。<br />
2.变量<br />
C++k中的每个符号变量都与一个特定的数据类型相关联，这个类型决定了相关内存的大小，布局，能够存储在该内存区的值的范围以及可以应用其上的操作集。</p>
<p>例如：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int student_count;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;double salary;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bool on_loan;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string street_address;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char delimiter;<br />
变量和文字常量都有存储区，并且有相关的类型。区别在于变量是可寻址的。<br />
每个变量，都有两个值：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.数据值，存储于某个内存地址中。被称为右值，即被读取的值。文字常量和变量都可被用作右值。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.地址值，存储数据值的那块内存的地址。它有时被称为变量的左值，即位置值。文字常量不能被用作左值。<br />
在C++中，程序在使用之前必须先知道该对象。可以通过对象声明来实现，它的作用是使程序知道该对象的类型和名字。由关键字extern以及跟在后面的对象类型以及对象的名字构成。声明不是定义，不会引起内存分配。一个程序只能包含一个对象的一个定义，却可以包含任意数目的对象声明。可将声明放于头文件中。</p>
变量名可由数字，字母，下划线组成。以字母或下划线开头，区分大小写。对长度不限制。不能使用C++的关键字。在实际开发中，变量名通常取代表实际含义的英文字母。<br />
对象的定义<br />
类型指示符+名字,分号结束。例如：unsigned long distance;<br />
如果变量是在全局域定义的，系统提供初始值0。如果是局部域的，或是通过new表达式动态分配的，系统不提供初始值0。这样的对象是未初始化的，它们不是没有值，而是未定义。<br />
C++支持两种形式的初始化。<br />
一种是使用赋值操作符的显式语法形式：int ival=1024;<br />
第二种是隐式形式：int ival(1024);<br />
每种内置数据类型都支持一种特殊的构造函数语法，可将对象初始化为0。例：int ival=int();<br />
对象可以用任意复杂的表达式来初始化，包括函数的返回值。<br />
指针<br />
指针持有另一个对象的地址，使我们能够间接地操作这个对象。<br />
通过在标识符前加一个解引用操作符(*)来定义指针。例：<br />
int *p1,p2;<br />
complex&lt;double&gt; *cp;<br />
当指针持有0值时，表明它没有指向任何对象，或持有一个同类型的数据对象的地址。<br />
空(void*)类型指针，它可以被任何数据指针类型的地址值赋值(函数指针不能赋值给它).<br />
不能操作空类型指针所指向的对象，只能传送该地址值或将它与其他地址值作比较。<br />
C++提供了解引用操作符(*)来间接地读和写指针所指向的对象。<br />
int ival=1024;<br />
int *pi=&amp;ival;<br />
int **ppi=&amp;pi;ppi是指向int指针pi的指针。<br />
int *pi2=*ppi;<br />
要访问到ival，需要两次解引用ppi.*ppi<br />
指针可以让它的地址值增加或减少一个整数值。称为指针的算式运算。典型用法是遍历一个数组。<br />
字符串类型<br />
C风格字符串<br />
<br />
<img src ="http://www.blogjava.net/luolin/aggbug/149404.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/luolin/" target="_blank">懒猪的技术blog</a> 2007-09-29 01:38 <a href="http://www.blogjava.net/luolin/archive/2007/09/29/149404.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>