Top
首页 > 老文章 > 正文

理解C++的复杂声明

“右左法则”是一个简单的法则,但能让你准确理解所有的声明。
发布时间:2010-05-20 10:26        来源:        作者:mt
【赛迪网讯】“右左法则”是一个简单的法则,但能让你准确理解所有的声明。这个法则运用如下:从最内部的括号开始阅读声明,向右看,然后向左看。当你碰到一个括号时就调转阅读的方向。括号内的所有内容都分析完毕就跳出括号的范围。这样继续,直到整个声明都被分析完毕。 对上述“右左法则”做一个小小的修正:当你第一次开始阅读声明的时候,你必须从变量名开始,而不是从最内部的括号。 再来看一个例子: int *( *( *arr[5])())(); 阅读步骤: 1. 从变量名开始--- arr 2. 往右看,发现是一个数组---一个5元素的数组 3. 向左看,发现一个* ---指针 4. 跳出括号,向右看,发现() ---不带参数的函数 5. 向左看,碰到* --- (函数)返回一个指针 6. 跳出括号,向右发现() ---不带参数的函数 7. 向左,发现* --- (函数)返回一个指针 8. 继续向左,发现int --- int类型 总结: arr是一个5元素的数组,每个元素是一个指针,该指针指向一个不带参数的函数,该函数返回一个指针,该指针指向一个不带参数返回整型指针的函数。

(实习编辑:HJ)

加载更多

专题访谈

合作站点
stat