3数据类型2.pptVIP

  1. 1、本文档共93页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3数据类型2

3.1 数组;使用下标可以访问数组的单个元素,下标值从0到arraySize-1。 int ia[10]; 声明了一个包含10 个int 对象的数组,每个对象被称作是ia 的一个元素。因此 ival = ia[ 2 ]; 将ia 中由2 索引的元素的值赋给ival 。 ia[ 7 ] = ival; 把ival 的值赋给ia 的由7 索引的元素;数组可以被显式地用一组数来初始化,这组数用逗号分开放在大括号中。例如 const int array_size = 3; int ia[ array_size ] = { 0, 1, 2 }; 被显式初始化的数组可以不指定大小值,编译器会根据列出来的元素的个数来确定数组的大小 // 维数为3 的数组 int ia[] = { 0, 1, 2 };;如果指定了大小,那么初始化列表提供的元素的个数不能超过这个值 如果指定的维数大于给出的元素的个数,那么没有被显式初始化的元素将被置为0 // ia == { 0, 1, 2, 0, 0 } const int array_size = 5; int ia[ array_size ] = { 0, 1, 2 }; 数组应用 例arrayone.cpp;字符数组可以用一个由逗号分开的字符文字列表初始化,文字列表用花括号括起来;或者用一个字符串常量初始化。但是注意这两种形式不是等价的,字符串常量包含一个额外的终止空字符。例如 char ca1[] = { C, +, + }; char ca2[] = C++; ca1 的维数是3, ca2 的维数是4 。下面的声明将被标记为错误 // 错误: Daniel是7 个元素 char ch3[ 6 ] = Daniel;;一个数组不能被另外一个数组初始化,也不能被赋值给另外一个数组 要把一个数组拷贝到另一个中去,必须按顺序拷贝每个元素。例如 const int array_size = 7; int ia1[ ] = { 0, 1, 2, 3, 4, 5, 6 }; int main() { int ia2[ array_size ]; for ( int ix = 0; ix array_size; ++ix ) ia2[ ix ] = ia1[ ix ]; return 0; };用户必须清楚,C++没有提供编译时刻或运行时刻对数组下标的范围检查,除了程序员自己注意细节,并彻底地测试自己的程序之外没有别的办法可防止数组越界;多维数组;内嵌在里边的花括号是可选的,下面的初始化与前面的是等价的,只是有点不清楚 int ia[4][3] = { 0,1,2,3,4,5,6,7,8,9,10,11 }; 下面的定义只初始化了每行的第一个元素,其余的元素被初始化为0 int ia[ 4 ][ 3 ] = { {0}, {3}, {6}, {9} }; 如果省略了花括号结果会完全不同,下面的定义 int ia[ 4 ][ 3 ] = { 0, 3, 6, 9 }; 初始化了第一行的3 个元素和第二行的第一个元素,其余元素都被初始化为0 ;3.2 指针;声明一个能存放ival 内存地址的指针类型可以这样写 // 一个指向int 类型的指针 int *pint; C++预定义了一个专门的取地址 操作符 ,当把它应用在一个对象上时返回的是对象的地址值 pint = ival; // 把ival 的地址pint 为了访问pint 所指向的实际对象,必须先用解引用操作符* 来解除pint 的引用 *pint = *pint + 1; ;每个指针都有一个相关的类型,不同数据类型的指针之间的区别不是在指针的表示上,也不在指针所持有的地址值上:对所有类型的指针这两方面都是相同的。 不同之处在于指针所指的对象的类型上 指针的类型可以指示编译器怎样解释特定地址上内存的内容,以及该内存区域应该跨越多少内存单元 如果一个int 型的指针寻址到1000 内存处,那么在32 位机器上跨越的地址空间是1000~1003 如果一个double 型的指针寻址到1000 内存处,那么在32 位机器上跨越的地址空间是1000~1007;在下面的例子中lp 是一个指向long类型对象的指针,而lp2 则是一个long 型的数据对象,不是指针 long *lp, lp2; 在下面的例子中fp 是一个float 型的数据对象而fp2 是一个指向float 型对象的指针 f

文档评论(0)

shuwkb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档