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范围的改变需要外界的干预该迭代范围。该方式的好处是:可以灵活指定迭代的范围,可以是整个对象也可能是一部分。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Linux C C++入门与进阶.pdf

  • 2015-03-03 19:25
  • 40.95MB
  • 下载

C程序设计进阶week5(指针2注意)

数组中的指针 基本知识: 注意b,pb,c,pc,b和pb是地址,c和pc打印出来是内容,因为是字符数组 这段,加上那一段就打印地址了 定义指针后可以直接把字符串赋给pc,但这样就不能用p...

Linux c c++ 入门与进阶

  • 2015-06-05 09:15
  • 40.95MB
  • 下载

迷宫问题(进阶)C/C++

BFS最短路径 利用广度优先搜索来解决迷宫中的最短路径。

Linux C/C++入门与进阶

  • 2016-05-18 17:52
  • 40.95MB
  • 下载

c/c++深层探索(进阶)

  • 2010-06-01 18:51
  • 4.11MB
  • 下载

c/c++进阶之爱恨交织的临时对象:三、诡异的性质

在通过前两章的讲解之后,相信大部分读者都能写出比较优雅并高效的的程序了。但是,因为各家厂商编译器实现和语言本身的问题(c++语言本身就是让人又爱又恨的),我们在编写一些跨平台程序的时候,冷不防的就会踩...

C/C++从入门到进阶必修书籍

C到C++ 学习入门到进阶到专业(以下是学习资料文档) 链接地址:http://blog.csdn.net/u010236550/article/details/19005909 以上所有文档资料...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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