zoukankan      html  css  js  c++  java
  • C奇特的声明

    声明时可以使用的修饰符
    修饰符 含义
    * 表示一个指针
    () 表示一个函数
    [] 表示一个数组

     C允许使用多个修饰符,这就使得可以创建如下各种各样的类型:

    int board[8][8]; // int数组的数组
    int **ptr; // 指向int的指针的指针
    int *risks[10]; // 具有10个元素的数组,每个元素是一个指向int的指针
    int (* risks)[10]; // 一个指针,指向具有10个元素的int数组
    int * oof[3][4]; // 一个3*4的数组,每个元素是一个指向int的指针
    int (* uuf)[3][4]; // 一个指针,指向3*4的int数组
    int (* uof[3])[4]; // 一个具有3个元素的数组,每个元素是一个指向具有4个元素的int数组的指针
    

    修饰符的使用规则:

    1. 表示一个数组的[]和表示一个函数的()具有相同的优先级,且高于间接运算符*的优先级。

    int * risks[10]; // risks是一个指针数组,而不是指向数组的指针

    2. []和()都是从左到右进行结合的。

    int goods[12][50]; // goods是一个由12个具有50个int值的数组结构组成的数组,而不是一个由50个具有12个int值的数组结构组成的数组

    3. ()还可以解释成普通的圆括号。

    int (* rusks)[10]; // risks是一个指向数组的指针
    int * oof[3][4]; // oof是一个具有3*4个int *类型元素的二维数组
    int (* uuf)[3][4]; // uuf是一个指向具有3*4个int类型元素的二维数组的指针

    使用typedef建立一系列相关的类型:

    typedef int arr5[5];
    typedef arr5 * p_arr5;
    typedef p_arr5 arrp10[10]; 
  • 相关阅读:
    Maven的配置文件-settings.xml内容分解
    数据库管理工具-Navicat Premium 12
    转:android Support 兼容包详解
    转:聊聊mavenCenter和JCenter
    转:serialVersionUID作用
    Android 6.0 权限知识学习笔记
    X86和X86_64和X64有什么区别?
    Android 问题汇总(持续更新)
    Android-armebi-v7a、arm64-v8a、armebi的坑
    HttpUrlConnection 基础使用
  • 原文地址:https://www.cnblogs.com/qwertWZ/p/2869544.html
Copyright © 2011-2022 走看看