美文网首页
指针常见操作(二)

指针常见操作(二)

作者: qianranow | 来源:发表于2018-04-25 13:58 被阅读34次

0. 指针类型


  • 定义变量
    char *name = "wxx";
    
  • 作为形参类型
    void demo(int *p);
    int main() {
      int nums[] = {1, 3, 5};
      demo(nums);
      printf("%i\n", nums[0]);
      return 0;
    }
    void demo(int *p) {
      p[0] = 88;
    }
    
  • 作为返回值
    char *demo(void);
    int main() {
      char *nameStr = demo();
      printf("%s\n", nameStr);
      return 0;
    }
    char *demo(void) {
      char *str = "wxx";
      return str;
    }
    

1. 指针和函数


  • 概念:通过 指针 保存 函数实现地址
    格式:返回值类型 (*变量名称)(形参类型, ...);
    
    void eatApple() {
      printf("吃苹果\n");
    }
    
    int getMoney() {
      return 100;
    }
    
    void eatFood(char *food) {
      printf("吃%s\n", food);
    }
    
    int sum(int v1, int v2) {
      return v1 + v2;
    }
    
    int main() {
    
      void (*eatAppleP)(void) = eatApple;
      eatAppleP();
    
      int (*getMoneyP)(void) =  getMoney;
      printf("%i\n", getMoneyP());
    
      void (*eatFoodP)(char *) = eatFood;
      eatFoodP("美食");
    
      int (*sumP)(int, int) = sum;
      printf("%i\n", sumP(10, 20));
    
      return 0;
    
    }
    
  • 操作
    • 通过 指针调用 函数
      int sum(int, int);
      int main() {
        int (*sump)(int , int) = NULL;
        sump = sum;
        int num = sump(10, 10);
        printf("%i\n", num);
      }
      int sum(int v1, int v2) {
        return v1 + v2;
      }
      
    • 通过 指针传递 函数
      int sum(int, int);
      
      int minus(int, int);
      
      int demo(int, int, int (*p)(int, int));
      
      int main(int argc, const char * argv[]) {
      
        printf("%i\n", demo(30, 10, minus));
      
        return 0;
      
      }
      
      int sum(int v1, int v2) {
        return v1 + v2;
      }
      
      int minus(int v1, int v2) {
        return v1 - v2;
      }
      
      int demo(int v1, int v2, int (*p)(int, int)) {
        return p(v1, v2);
      }
      

相关文章

  • 指针常见操作(二)

    0. 指针类型 定义变量char *name = "wxx"; 作为形参类型void demo(int *p);i...

  • 指针常见操作(一)

    0. 指针和数组 通过 指针 保存 数组变量地址int values[] = {1, 3, 5, 7, 9};in...

  • 一、Linux入门介绍

    一、操作系统发展 二、常见的操作系统

  • Flutter 用户交互事件

    前言 在 Flutter 中手势操作分为两类: 原始的指针事件(Pointer Event),即原生开发中常见的触...

  • 搞不清白的指针啊啊啊啊

    1、一级指针和二级指针 在传递一级指针时,只有对指针所指向的内存变量做操作才是有效的;void fun(int *...

  • C语言-查找奥运五环色的位置,用二级指针操作指针数组实现

    问题描述:查找奥运五环色的位置,用二级指针操作指针数组实现 源代码: 源代码:/查找奥运五环色的位置,用二级指针操...

  • Go结构-2

    指针 普通指针 通过指针也可以间接操作指向的存储空间 指向数组的指针 可以通过指针间接操作数组 注意点:Go语言中...

  • 常见文件操作(二)

    1.判断文件是否存在:os.path.exists(r"c://python//hello.py")--->tru...

  • 手撕二叉树

    与二叉树相关的代码有大量的指针操作,在每次使用指针的时候,需要判断指针是否是nullptr,以及该如何处理。 【面...

  • 二、C语言基础

    A、指针 指针的概念:指针变量 和 指针 的区别 ?答:指针变量是指针的标记,也可以通过指针变量的标记操作指针内存...

网友评论

      本文标题:指针常见操作(二)

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