C++编程思想 第1卷 第3章 函数地址 复杂的声明和定义

一旦知道C和C++ 语法如何工作,就能创建许多复杂的条目


//: C03:ComplicatedDefinitions.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 2000
// Copyright notice in Copyright.txt

/* 1. */     void * (*(*fp1)(int))[10];
//fp1是指向函数的指针, 函数接受整形参数并返回一个10个void指针数组的指针

/* 2. */     float (*(*fp2)(int,int,float))(int);
//fp2是指向函数的指针,接受3个参数 int int float, 且返回一个指向函数的指针
//接受一个整形返回一个 float

/* 3. */     typedef double (*(*(*fp3)())[10])();
             fp3 a;
//创建许多复杂的定义,可以使用tyepdef
//显示每次typedef如何缩短复杂定义的
//fp3 是一个指向函数的指针 函数无参数
//返回一个指向含有10个指向函数指针数组的指针,不接受参数,返回double值
//a是 fp3类型中的一个
//typedef 用简单描述构建复杂描述
			 
/* 4. */     int (*(*f4())[10])();
//不是变量定义,而是函数定义
//f4是一个返回指针的函数,该指针指向一个含义10个函数指针的数组 返回整形值

int main() {} ///:~
我们很少使用复杂的声明和定义 
如果搞清楚,不会被可能遇到的稍微复杂的情况所困惑


无输出


猜你喜欢

转载自blog.csdn.net/eyetired/article/details/80786391
今日推荐