博客
关于我
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/

    你可能感兴趣的文章
    python固定后缀(名物化词汇)词频统计:抽取+统计+可视化
    查看>>
    python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
    查看>>
    python商品数据分析可视化系统(带爬虫)京东销售数据分析 计算机毕业设计 源码下载
    查看>>
    python商品库存管理系统 django框架 商品网站 MySQL数据库 源码下载 计算机毕业设计
    查看>>
    Python哪个版本最稳定好用2023.10.19
    查看>>
    Python和黑客技术的渊源
    查看>>
    Python和RF编写接口自动化
    查看>>
    Python和RF编写web自动化
    查看>>
    python和js哪个难_【Python】记一次学习,Python 与 js 在实现闭包时的差异
    查看>>
    python和java哪个更值得学——来自知乎高赞回答
    查看>>
    python和c混合编程 github_在pycharm中使用git版本管理以及同步github的方法
    查看>>
    python命名空间更改_Python模块xml.etree.ElementTree自动修改xml命名空间键
    查看>>
    Python命名中尾随下划线有什么好处?
    查看>>
    Python启动脚本
    查看>>
    Python听写汇总结果
    查看>>
    python吊打Excel?屁!那是你不会用!
    查看>>
    Python合并两张图片 | 先叠透明度再合并 (附Demo)
    查看>>
    python各进制的表述与转换
    查看>>
    python各种库安装
    查看>>
    python可视化matplotlib_如何使用Python中最强大的可视化工具Matplotlib?
    查看>>