再让我们看看<signal.h>中声明的signal函数
void (*signal(int, void(*)(int)))(int)
首先,用typedef简化,
typedef void (*handler_type)(int)
得,void (*signal(int, handler_type))(int)
进一步 handler_type signal(int, handler_type);

记住:数组名是指向该数组首元素的指针
如,int a[11];  //那么a的类型为 (int *)
int *ptr;
ptr = a;
但是ptr = &a;是非法的,这里&a的类型为int (*)[],即指向数组的指针,大多数编译期对这种操作,或者视为非法,或者让其等于a

我们很容易知道calendar[4]表示什么含义:calendar[4]表示calendar数组的第5个元素,是12个有31个元素的数组之一。
sizeof(calendar[4])结果为31×sizeof(int)

此例中,calendar名字转换为一个指向数组的指针,其类型为int (*)[31]
于是p=calendar; 是非法的

int (*monthp)[31];
monthp = calendar;//OK

3.7 求值顺序
C中只有四个运算符(&&, ||, ? :和,)规定了求值顺序,对于其他运算符不要错误的假设求值顺序,他们求值顺序是未定义的。

如:
i = 0;
while(i < n)
    y[i] = x[i++];

这里y[i]的地址在i自增前被求值是没有任何保证的

http://www.cnblogs.com/chio/archive/2007/10/26/938064.html

函数指针的转换 & C的注意点的更多相关文章

  1. 成员函数指针与高效C++委托 (delegate)

    下载实例源代码 - 18.5 Kb 下载开发包库文件 - 18.6 Kb 概要 很遗憾, C++ 标准中没能提供面向对象的函数指针. 面向对象的函数指针也被称为闭包(closures) 或委托(del ...

  2. 成员函数指针与高性能C++委托

    1 引子 标准C++中没有真正的面向对象的函数指针.这一点对C++来说是不幸的,因为面向对象的指针(也叫做“闭包(closure)”或“委托(delegate)”)在一些语言中已经证明了它宝贵的价值. ...

  3. [转]成员函数指针与高性能的C++委托

    原文(作者:Don Clugston):Member Function Pointers and the Fastest Possible C++ Delegates 译文(作者:周翔): 成员函数指 ...

  4. C++ 指向类成员函数指针的用法(转自维基百科)

    类成员函数指针 类成员函数指针(member function pointer),是C++语言的一类指针数据类型,用于存储一个指定类具有给定的形参列表与返回值类型的成员函数的访问信息. 目录 1 语法 ...

  5. Delphi下使用指针的简单总结(指针的赋值,数组和指针的转换,函数指针的使用)

    由于最近公司太忙,好久没有更新我的BLOG了.原来想着写写关于HOOK驱动的文章,可是最后想想好久已经没有做驱动的东西了,怕写出来有错误,于是作罢.开发游戏也有一段时间了,发现使用DELPHI来开发网 ...

  6. typedef 函数指针 数组 std::function

    1.整型指针 typedef int* PINT;或typedef int *PINT; 2.结构体 typedef struct { double data;}DATA,  *PDATA;  //D ...

  7. 函数指针_typedef

    一 函数指针 1 函数类型 函数的类型由它的返回值类型,和形参类型共通过决定,与函数名无关. eg:bool lengthcompare(const string&, const string ...

  8. 对象布局已知时 C++ 对象指针的转换时地址调整

    在我调试和研究 netscape 系浏览器插件开发时,注意到了这个问题.即,在对象布局已知(即对象之间具有继承关系)时,不同类型对象的指针进行转换(不管是隐式的从下向上转换,还是强制的从上到下转换)时 ...

  9. C语言函数指针的用法

    函数指针是一种在C.C++.D语言.其他类 C 语言和Fortran 2003中的指针.函数指针可以像一般函数一样,用于调用函数.传递参数.在如 C 这样的语言中,通过提供一个简单的选取.执行函数的方 ...

随机推荐

  1. WordPress 不错的插件

    Akismet – 防止垃圾评论 WP-PostViews Plus - 页面访问量统计 All in One SEO Pack – 搜索引擎优化的插件,自动优化搜索引擎. WP Super Cach ...

  2. python3爬取全民K歌

    Python3爬取全民k歌 环境 python3.5 + requests 1.通过歌曲主页链接爬取 首先打开歌曲主页,打开开发者工具(F12). 选择Network,点击播放,会发现有一个请求返回的 ...

  3. 【LeetCode OJ 34】Search for a Range

    题目链接:https://leetcode.com/problems/search-for-a-range/ 题目:Given a sorted array of integers, find the ...

  4. Android图片旋转,缩放,位移,倾斜,对称完整演示样例(一)——imageView.setImageMatrix(matrix)和Matrix

    MainActivity例如以下: import android.os.Bundle; import android.view.MotionEvent; import android.view.Vie ...

  5. Android面试题目整理与解说(一)

    这一篇文章专门整理一下研究过的Android面试题,内容会随着学习不断的添加,假设答案有错误,希望大家能够指正 1.简述Activity的生命周期 当Activity開始启动的时候,首先调用onCre ...

  6. 在EA中将画出的ER图转换成SQL脚本

    在进行数据库设计的时候,想着正好安装着EA软件呢,看能不能用EA画ER模型.结果发现不仅能画.并且还能进行整套数据库设计(生成SQL脚本). 以下以机房收费系统用户--学生为例.学生能够查看剩余金额. ...

  7. mysql-高级语言语法

    一.注释 从#字符到行尾 从'-- '序列到行尾.两个破折号之后至少要有一个空格符或制表符. 二.设置变量 用户变量的形式为@var_name,其中变量名varname可以有当前字符集的文字数字字符. ...

  8. List exercise

    The slice operator can take a third argument that determines the step size, so t[::2] creates a list ...

  9. C#共享WIFI能通过代码控制给连接的移动端分配IP么

    用C#创建了一个虚拟WIFI,但是能不能通过代码来给连接上的移动端分配各自的IP.之前都是自动分配的IP.望大神们赐教 C#共享WIFI能通过代码控制给连接的移动端分配IP么 >> csh ...

  10. 文字添加响应事件,js动态加载CSS, js弹出DIV

    文字添加响应事件,js动态加载CSS, js弹出DIV <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...