美文网首页
C语言地址、指针、多级指针、数组、数组指针

C语言地址、指针、多级指针、数组、数组指针

作者: ZoranLee | 来源:发表于2021-03-03 16:31 被阅读0次

    数据类型

    image.png
    • 基本数据类型:short(2)、int(4)、long(8)、char(1)、float(4)、double(8)

    字符串

    char * str = "aaaa";
    printf("%s",str);
    

    指针

    • Java:万物皆对象;
    • C、C++:万物皆指针;
    • Linux:万物皆文件;
    • 指针 == 地址;%p是地址站位输出符
    • 任何都是地址,函数、对象都是地址
    • *就是取出地址的值
    • &就是变量对应的地址
    • 指针永远都是存放内存地址
    image.png
    • 函数必须先申明再使用
    image.png
    • c语言不允许函数重载

    交换

    image.png

    多级指针

      int num = 99;
      int * num_p = #
      int ** num_p_p = & num_p;
      //多级指针取回原值:
    printf("%d",*num_p);
    printf("%d",**num_p_p);
    
    image.png
    • 指针存放的是内存地址
    • 指针也有地址,自己的内存地址:&p


      image.png

    数组与数组指针

    int arr[] = {1,9,3,4};
    
    
    • arr == &arr == &arr[0] 这三个值相等

    • 数组的内存地址 =第一个元素的内存地址

    • *arr 可以用来取出第一个元素的值


      image.png
    • 通过指针位移来取数组的值


      image.png
    • 遍历数组赋值


      image.png
    • *arr 1

    • *arr+1 2

    • *(arr+1) 9

    • 指针类型有什么用


      image.png
    • 函数指针
      void(*method)(int,int)

    //实现回调
    #include "stdlib.h";
    int add(int num1, int num2) {
        return num1 + num2;
    }
    int oprate(int(*method)(int, int), int num1, int num2) {
        return method(num1, num2);
    }
    int main() {
        int result = oprate(add, 1, 2);
        printf("输出结果为%d", result);//3
    }
    
    • 文件上传


      image.png
    image.png

    相关文章

      网友评论

          本文标题:C语言地址、指针、多级指针、数组、数组指针

          本文链接:https://www.haomeiwen.com/subject/bfwqqltx.html