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[];
for (int i = ; i < ; ++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指针

c++学习笔记(二)-指针的更多相关文章

  1. muduo学习笔记(二)Reactor关键结构

    目录 muduo学习笔记(二)Reactor关键结构 Reactor简述 什么是Reactor Reactor模型的优缺点 poll简述 poll使用样例 muduo Reactor关键结构 Chan ...

  2. Go语言学习笔记二: 变量

    Go语言学习笔记二: 变量 今天又学了一招如何查看go的版本的命令:go version.另外上一个笔记中的代码还可以使用go run hello.go来运行,只是这种方式不会生成exe文件. 定义变 ...

  3. Linux学习笔记(二) 文件管理

    了解 Linux 系统基本的文件管理命令可以帮助我们更好的使用 Linux 系统,以下介绍几个常用的文件管理命令 1.pwd pwd 是 Print Working Directory 的简写,用于显 ...

  4. JDBC学习笔记二

    JDBC学习笔记二 4.execute()方法执行SQL语句 execute几乎可以执行任何SQL语句,当execute执行过SQL语句之后会返回一个布尔类型的值,代表是否返回了ResultSet对象 ...

  5. WPF的Binding学习笔记(二)

    原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...

  6. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  7. [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计

    源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...

  8. JMX学习笔记(二)-Notification

    Notification通知,也可理解为消息,有通知,必然有发送通知的广播,JMX这里采用了一种订阅的方式,类似于观察者模式,注册一个观察者到广播里,当有通知时,广播通过调用观察者,逐一通知. 这里写 ...

  9. java之jvm学习笔记二(类装载器的体系结构)

    java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...

  10. Java IO学习笔记二

    Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...

随机推荐

  1. centos who命令 查看当前登录系统用户信息

    who 显示当前登录系统的用户,但w显示的更为详细 默认输出 [root@mysql ~]# who //用户名.登录终端.登录时间 root pts/ -- : (192.168.0.110) -a ...

  2. OSError:[Errno 13] Permission denied:'my_library' 问题解决方法

    出现问题: 执行 rosrun rosserial_windows make_libraries.py my_library 命令时出现OSError:[Errno 13] Permission de ...

  3. 下载ez_setup

    1.下载ez_setup链接:https://pypi.org/project/ez_setup/#files

  4. MySQL语法和用户授权

    管理数据库 create database 等同于 create schema #导入数据库脚本     MariaDB [db1]> source /root/mysql/hellodb_in ...

  5. drf频率组件

    1.简介 控制访问频率的组件 2.使用 手写一个自定义频率组件 import time #频率限制 #自定义频率组件,return True则可以访问,return False则不能访问 class ...

  6. [sh]shift参数左移用法

    shift概述 https://blog.csdn.net/wangjianno2/article/details/48879641 1.shell脚本中的位置参数 shell脚本中的位置参数有两种: ...

  7. SpringBoot java.lang.IllegalArgumentException: Request header is too large

    在application.properties##tomcat 请求设置server.max-http-header-size=1048576server.tomcat.max-connections ...

  8. pom.xml实例

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  9. golang编程之我见

    golang编程之我见 学习了两个月的golang,语法算是基本掌握了,从一个C++程序员的角度,提出自己的几个看法吧. 1,没有一个好的包管理工具. 我在公司用的是glide的包管理,这个工具的好处 ...

  10. vbox 相关

    1.虚拟机vbox 安装mac os 10.12 图文教程: https://www.cnblogs.com/liming2017/p/7566953.html