• c++学习笔记(二)-指针


    1. 指向数组的指针

    int balance[5] = { 1000, 2, 3, 17, 50 };
    int *ptr;
    ptr = balance; //ptr是指向数组balance的指针
    //或者这样也是可以的:
    ptr = &balance[];

    balance和ptr的区别是ptr是变量,balance是常量:

    *ptr++ = 1; //这是可以的
    ptr = balance++; //这是不可以的,IDE会报错说表达式必须是可修改的左值

     2. 指针作为函数返回值

    根据菜鸟教程

    “C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量”

    栗子本来用的随机数生成,觉得看的时候乱,直接改成1~10递增,长这样:

    // 要生成和返回随机数的函数
    int * getRandom( )
    {
      static int  r[10]; 
      for (int i = 0; i < 10; ++i)
      {
        r[i] = i;
        cout << r[i] << endl;
      } 
      return r;
    }

    其实也好理解,如果不把变量定义成静态,函数里的变量就是局部变量了,调用函数的时候才会给局部变量分配内存空间,那函数返回以后分配的空间已经被操作系统回收了。

    试了下,如果去掉静态修饰符static,输出结果乱码,但如果定义成全局变量也是可以的:

     3. 类的指针

    定义一个类:Solution,成员函数twoSum()

    那么,调用这个类时可以有两种方法:

    Solution mySolution;
    mySolution.twoSum();

    或:

    Solution* mySolution;
    mySolution = new Solution();
    mySolution->twoSum();

    类的this指针

  • 相关阅读:
    dev GridControl 代码自定义下拉框
    字符串utf-8相互转换
    .net 相关
    dev grid 样式
    winform 重置快捷写法
    winform 代码定义事件
    winform设置默认打印机
    可为空的对象必须具有一个值
    js获取当前日期之前或之后数据
    sql 快捷方法使用
  • 原文地址:https://www.cnblogs.com/zhengmeisong/p/7771656.html
Copyright © 2020-2023  润新知