博客
关于我
C语言指针比较高级的用法及指针数组面试题详解
阅读量:167 次
发布时间:2019-02-27

本文共 2570 字,大约阅读时间需要 8 分钟。

C/C++ ??????

??????

????? C/C++ ????????????

  • ??????

    char c = 'a';
    char* pc = &c;
    *pc = 'a';

    ??????? pc ?????? c ?????? pc ??????????????? pc ??? c ??????

  • ?????

    char* str = "hello world";
    printf("%s\n", str);

    ??????????????????????????????????? str ????????????????? str ???????????????????????????? '\0'?


  • ??????

    ???????????????????????????????????????

  • ??????

    char (*p)[10];
    ??? p ???????? 10 ??????????

  • ?????????????

    int a[10];

    • a ??????????
    • &a ???????

    ?? a + 1 ?? 1 ??????4 ????? &a + 1 ?? 10 ????????????


  • ??????

    ?????????????????????????????????????

  • ??????

    char* arr[4];

  • ??????

    char** arr[5];


  • ???????????

    ??????

  • ???????

    void test(int arr[]);
    void test(int* arr);

    • arr[] ?????????????
    • arr* ??????????????
  • ??????

    • ??????????????
    • void test(int arr[3][5]);
    • void test(int arr[][5]);
  • ????

    void test(int* arr);
    void test(int** arr);


  • ??????

    ?????????????????

  • ??????

    void (*pfun)();

  • ???????

    void PopSort(int* nums, int numsSize, int (*p)(int x, int y)) {    // ...}void GreaterPopSort(int x, int y) { return x > y ? 1 : 0; }void LessPopSort(int x, int y) { return x < y ? 1 : 0; }int main() {    // ?? PopSort ????????? GreaterPopSort ? LessPopSort ???????}

  • ??????

    ????????????????????????

    void test(int* arr, void (*pfun)(int x, int y)) {    pfun(arr[0], arr[1]);}

    ???????? pfun?????????????????


    ????????????????

  • ??????

    int (*prt[10]);
    ??? prt ????? 10 ?????????

  • ???????????

    void (***cpp)(int x, int y);
    ??? cpp ?????????????????


  • ????????

    ?? 1

    int main() {    int a[5] = {1, 2, 3, 4, 5};    int* ptr = (int*)(a + 1); // ????????    printf("%d,%d", *ptr - 1, *ptr);    return 0;}

    ?????4,5


    ?? 2

    int main() {    char a[4] = {'1', '2', '3', '4'};    char* p = a;    printf("%c,%c", *p, *(p + 1));    return 0;}

    ?????1,2


    ?? 3

    int main() {    char a[3] = {'w', 'o', 'r'};    char** pa = a;    printf("%s", *pa);    return 0;}

    ?????wor


    ?? 4

    int main() {    char a[3][2] = {        {'w', 'o'},        {'r', 'k'},        {'a', ' '}    };    char* p = a;    printf("%s\n", p[0]);    return 0;}

    ?????wo


    ?? 5

    int main() {    char a[5][5];    char** p = a;    printf("%p,%d\n", p[4][2], p[4][2] - 'a');    return 0;}

    ?????0x1c4d0, 4


    ?? 6

    int main() {    char a[2][5] = {        {'w', 'o', 'r', 'k', ' '},        {'a', 'l', 'i', 'b', 'a'}    };    char** p = a;    printf("%s\n", p[1][4]);    return 0;}

    ?????a


    ?? 7

    int main() {    char a[] = {"work", "at", "alibaba"};    char** pa = a;    printf("%s\n", pa[1]);    return 0;}

    ?????at


    ?? 8

    int main() {    char a[5] = {'E', 'N', 'T', 'E', 'R'};    char** cpp = a;    printf("%s\n", **cpp);    printf("%s\n", *cpp);    return 0;}

    ?????

    ENTER
    E

    转载地址:http://nzub.baihongyu.com/

    你可能感兴趣的文章
    Plotly (Python) 子图:填充构面和共享图例
    查看>>
    pm2通过配置文件部署nodejs代码到服务器
    查看>>
    PML调用PDMS内核命令研究
    查看>>
    PMM安装-第一篇
    查看>>
    PMP知识要点(第九章)
    查看>>
    PNETLab 镜像包官方下载太慢?不急,最新版本PNET_4.2.10分享!
    查看>>
    POCO库中文编程参考指南(4)Poco::Net::IPAddress
    查看>>
    Quartz基本使用(二)
    查看>>
    POC项目安装与使用指南
    查看>>
    Podman核心技术详解
    查看>>
    pods 终端安装 第三方框架的一些命令
    查看>>
    Podzielno
    查看>>
    PoE、PoE+、PoE++ 三款交换机如何选择?一文带你了解
    查看>>
    PoE三种标准:标准 PoE、PoE+、PoE++,网络工程师必知!
    查看>>
    POI 的使用
    查看>>
    poi 读取单元格为null者空字符串
    查看>>
    poi-tl简介与文本/表格和图片渲染
    查看>>
    pointnet分割自己的点云数据_PointNet解析
    查看>>
    POI实现Excel导入Cannot get a text value from a numeric cell
    查看>>
    POI实现Excel导入时提示NoSuchMethodError: org.apache.poi.util.POILogger.log
    查看>>