zoukankan      html  css  js  c++  java
  • 《C++必知必会》读书笔记4

    int *f();   //一个返回值为int* 的函数

    int (*f)();  //一个函数指针,指向一个返回类型为int的并且无参数的函数

    const int N=12;

    int *a[N];  //首先,提醒这段代码在c中不行。 这个是一个具有N个int * 元素的数组

    int (*a)[N];  //一个指针,指向一个具有N个int元素的数组。

    int(**p)[N];  //一个指针,指向一个指针,后者指向一个具有N哥int元素的数组

    int *(*p)[N];  //一个指针,指向一个具有N个int * 元素的数组

    int (**const p)()const =0;  //一个常量指针,指向一个指向函数的指针。

    int* (*p)();     //一个指针,指向一个返回类型为int* 的函数。

    参数和返回值都会影响指针的类型:

    char *(*p1)(int ,int);

    char *(*p2)(short,short)=0;

    p1=p2;  //Error 类型不匹配

    智能指针通过重载->和* (也可能还有->*)操作符,来模仿指针的行为。

    函数对象类型通过重载()操作符,来创造类似于函数指针的东西。

    在c++中,一个对象可以哟多个有效的地址,因此指针的比较不是关于地址的问题,而是关于对象的“同一性”的问题。

  • 相关阅读:
    如何解决App无法收到android开机广播
    如何实现开机启动、清缓存、杀进程、悬浮窗口单双击区分,附源码
    WaitForSingleObject 介绍【转】
    C++ Unicode SBCS 函数对照表【转】
    数字IP字符串IP转换
    打印内存【CSDN】
    巧妙的无重复随机数方法
    <unnamedtag>”后面接“int”是非法的
    友元函数与重载运算符【转】
    QT QTableWidget 用法总结【转】
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2416557.html
Copyright © 2011-2022 走看看