博客
关于我
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-2.19 定义函数、调用函数与默认参数
    查看>>
    Python+Selenium之数据驱动测试的实现
    查看>>
    python函数定义与使用+返回值简解
    查看>>
    Python+Selenium登录
    查看>>
    Python日期时间模块
    查看>>
    Python函数合集:足足68个内置函数请收好!
    查看>>
    Python+Selenium自动化测试项目实战
    查看>>
    Python+Selenium自动化测试项目实战【建议收藏】
    查看>>
    Python+Selenium自动化测试:Page Object模式
    查看>>
    python+selenium进行cnblog的自动化登录测试
    查看>>
    Python函数只返回第一个值而不是数据框
    查看>>
    Python+SQL实战:京东用户行为数据分析案例解析(上)
    查看>>
    Python+SQL实战:京东用户行为数据分析案例解析(下)
    查看>>
    PYTHON+Twisted+sqlanydb=ABORT()
    查看>>
    Python函数之返回值、作用域和局部变量
    查看>>
    Python+统计学 | 探索常用的数据分析统计分布
    查看>>
    python, selenium中用于切换帧的函数
    查看>>
    python函数
    查看>>
    python----线程、进程、协程的区别及多线程详解
    查看>>
    python---5
    查看>>