介绍 曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明。 基础 让我们从一个非常简单的例子开始,如下:
这个应该被理解为“declare n as an int”(n是一个int型的变量)。 接下去来看一下指针变量,如下:
这个应该被理解为“declare p as an int *”(p是一个int *型的变量),或者说p是一个指向一个int型变量的指针。我想在这里展开讨论一下:我觉得在声明一个指针(或引用)类型的变量时,最好将*(或&)写在紧靠变量之前,而不是紧跟基本类型之后。这样可以避免一些理解上的误区,比如:
第一眼看去,好像是p和q都是int*类型的,但事实上,只有p是一个指针,而q是一个最简单的int型变量。 我们还是继续我们前面的话题,再来看一个指针的指针的例子:
理论上,对于指针的级数没有限制,你可以定义一个浮点类型变量的指针的指针的指针的指针... 再来看如下的声明:
这里,p被声明为一个指向一个4元素(int类型)数组的指针,而q被声明为一个包含5个元素(int类型的指针)的数组。
|
闂佽 鍋撻柟顖滃椤ユ垿鏌熺€涙ê濮囧┑顕嗘嫹闂佸搫琚崕鍐诧耿閸涙潙缁╅柟顖滃椤ワ拷>>
正在阅读:经典:教你理解复杂的C/C++声明经典:教你理解复杂的C/C++声明
2004-07-16 10:15
出处:CSDN
责任编辑:linjixiong
键盘也能翻页,试试“← →”键