C/C++进阶[5]

原创 2006年06月20日 01:17:00

一个很有趣的应用

关键字:迭代问题、一维数组范围

比如有一个结构,它是这样定义的:

typedef struct MyStuc

{

int nID;

char *pszText;

} MyStuc;

那么MyStuc的一个实例可以是:

MyStuc  mt[] = {

{0, "Text 1"},

{1, "Text 2"},

{2, "Text 3"}

};

这样的话我们很容易就能进行转化,并且能够保证结果是等效的:

MyStuc mt[3];

mt[0].nID = 0;

mt[0].pszText = "Text 1";

...

mt[2].pszText = "Text 2";

前一个mt定义的同时进行初始化,由编译器决定维数大小;而后一个则先定义后初始化,并且指定了维数大小。显然,它们的空间大小一样。但在迭代中,怎么应用呢?看下面的例子:

int  nMax = sizeof(mt) / sizeof(mt[0]);

for (int i = 0; i < nMax ; ++i)

{

    //do something

    mt[i] ....

}

它的优点在于自动限制mt的下标范围。下标在int  nMax = sizeof(mt) / sizeof(mt[0]);求出。这样做的好处是:无需干预整个数组的迭代,界限由程序算出。

而第二个例子:

int  nMax = 3;

for (int i = 0; i < nMax; ++i)

{

     //do something

     mt[i]....

}

下标是一个常量,这是要程序员指定的,对于mt范围的改变需要外界的干预该迭代范围。该方式的好处是:可以灵活指定迭代的范围,可以是整个对象也可能是一部分。

公司中 C和C++程序员进阶之路

从一次考试说起。 2010年10月份,综合部邀请我给新入职3个月的员工草拟考试试题,这些同事大部分在公司做的实习,算起来至少也有5、6个月的工作经验了吧。 试题的内容,是针对日常需要面对的...
  • Tony_Wong
  • Tony_Wong
  • 2014年05月02日 09:47
  • 1867

转载C++如何进阶学习

C只读一本书《 The C Proguamming Language 》 读读C之父的著作,抛开老谭写的那本; C++你可以读《C++ primer》,其实当你把这两本书读通后,我想对于C/...
  • sesiria
  • sesiria
  • 2017年10月24日 15:06
  • 230

【C++进阶】深入理解C/C++(4)

【C++进阶】深入理解C/C++(4) 总结一下第三讲,我们可以知道,相对于第一位候选者,第二位候选者在以下几个方面有更深的认识: 1、  C与C++的联系; 2、 ...
  • fu_zk
  • fu_zk
  • 2014年02月19日 15:23
  • 1297

读书笔记(Linux c/c++入门与进阶)

在例子13.30作者谈到A_String和B_String指向同一块内存,当删除B_String,A_String的对应内存就会被删除或者出错,但是实际实验下来并没有删除,操作系统是ubuntu 14...
  • kentyu001
  • kentyu001
  • 2015年09月30日 10:36
  • 373

c/c++进阶之路

C/C++从入门到高手所有必备PDF书籍收藏,喜欢的朋友支持下吧~ C: 《C和指针》- PDF高清版 下载地址:http://www.fishc.com/a/book/C/821....
  • muyimo
  • muyimo
  • 2014年08月09日 16:14
  • 424

程序员进阶之路(C、C++、Java、Python经典书籍及学习顺序)

根据自身学习编程经验总结了一些C、C++、Java、Python语言的经典书籍,推荐按照顺序阅读...
  • yuexiaxiaoxi27172319
  • yuexiaxiaoxi27172319
  • 2015年04月24日 16:07
  • 2289

C语言的进阶学习

最近工作比较多,没时间看书写代码了,ye
  • u010563060
  • u010563060
  • 2014年11月18日 23:08
  • 526

C++高级进阶 第一季:const 详解

零、文章来由打算将基础知识在看书的同时系统的整理一下,方便大家也方便自己。整理的知识尽量参照书本知识,比网上获取的资料有更高的可信度。一、从 文字常量和常变量 开始补充:const并没有想象中的那么简...
  • Scythe666
  • Scythe666
  • 2016年03月05日 10:11
  • 1532

如何进阶c++高级程序员

c++进阶导航飞机票
  • li438730745
  • li438730745
  • 2016年09月13日 09:29
  • 808

C语言入门与进阶必备书

我们来说说C语言方面的图书。什么,C语言?有读者奇怪了。没错,这一次的主角就是诞生于1973年如今已经儿孙满堂的C语言。我们之所以要谈及C,不仅仅是因为它的影响深远,这完全可以从C系列语言家族的兴旺发...
  • u013897132
  • u013897132
  • 2014年03月22日 14:46
  • 2610
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C/C++进阶[5]
举报原因:
原因补充:

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