C++指针速记
基本原则:指针类型变量存储的就是地址!
1.数组名就是数组首元素的地址**
int age[3];
int* p = age;
2.使用new操作符实际上是向操作系统申请一块内存(包含类型信息),返回的就是该块内存的地址。我们要引用他,就要指针指向这段内存的地址。
int* p1 = new int(10);//该int的值为10
Student* p3 = new Student;//其中Student是结构体
3.->操作符,专门用于操作指针指向对象(结构体,对象)的成员
p3->age = 13;
4.操作符可以操作指针指向的地址
(*p3).age = 13
int sum = 0;
int* p5 = ∑
*p5 = 1;
cout << *p5;
5.&操作符,专门用于取地址
Student s1;//Student是结构体
s1.name = "123"; s1.age = 13;
Student* p3 = new Student;
Student* p4 = &s1;
总之:
当你看到了指针,你就要想到地址,就要想到*,想到取地址操作符&,想到->,指针是有类型的。注意:C++中的引用类型参数(&),和取地址操作符&是不一样的。
6.函数的指针:使用前面的原则来理解,函数指针是一个什么样的存在呢?
int add(int x, int y)
{
return x + y;
}
int(*addptr)(int, int);
addptr = add;
cout << (*addptr)(10, 20) << endl;//提问:这里为什么要用*
C++指针速记的更多相关文章
- [速记]关于指针,引用和递归和解递归——C++
在写基于二叉排序树的查找时,分为三个过程 1.二叉排序树的插入 2.二叉排序树的建立 3.基于二叉排序树的查找 其中第三部可以递归方式实现,也可以用while循环解递归,于是我想也解解第一步的递归,看 ...
- 速记const 指针与指向const的指针
指向const的指针.它的意思是指针指向的内容是不能被改动的.它有两种写法. ` const int* p; (推荐) int const* p;` 再说const指针.它的意思是指针本身的值是不能被 ...
- Golang语法与代码格式速记【转】
// Description: Golang语法与代码格式速记 // Author: cxy // Date: 2013-04-01 // Version: 0.3 // TODO 说明 // TOD ...
- TODO:Golang指针使用注意事项
TODO:Golang指针使用注意事项 先来看简单的例子1: 输出: 1 1 例子2: 输出: 1 3 例子1是使用值传递,Add方法不会做任何改变:例子2是使用指针传递,会改变地址,从而改变地址. ...
- enote笔记法使用范例(2)——指针(1)智能指针
要知道什么是智能指针,首先了解什么称为 “资源分配即初始化” what RAII:RAII—Resource Acquisition Is Initialization,即“资源分配即初始化” 在&l ...
- C++虚函数和函数指针一起使用
C++虚函数和函数指针一起使用,写起来有点麻烦. 下面贴出一份示例代码,可作参考.(需要支持C++11编译) #include <stdio.h> #include <list> ...
- C++11 shared_ptr 智能指针 的使用,避免内存泄露
多线程程序经常会遇到在某个线程A创建了一个对象,这个对象需要在线程B使用, 在没有shared_ptr时,因为线程A,B结束时间不确定,即在A或B线程先释放这个对象都有可能造成另一个线程崩溃, 所以为 ...
- c 数组与指针的使用注意事项
数组变量和指针变量有一点小小的区别 所以把数组指针赋值给指针变量的时候千万要小心 加入把数组赋值给指针变量,指针变量只会包含数组的地址信息 而对数组的长度一无所知 相当于指针丢失了一部分信息,我们把这 ...
- Marshal.Copy将指针拷贝给数组
lpStatuss是一个UNITSTATUS*的指针类型实例,并包含SensorDust字段 //定义一个数组类型 byte[] SensorDust = new byte[30] //将指针类型拷贝 ...
随机推荐
- svg 高宽随父元素自适应
<html lang="en"> <head> <meta charset="UTF-8"> <meta name=& ...
- mdadm语法
mdadm命令详解及实验过程 一.概念 mdadm是multiple devices admin的简称,它是Linux下的一款标准的软件 RAID 管理工具,作者是Neil Brown 二.特点 ...
- shell 统计字符串 字符个数
统计“abbc”中“b”的个数 1:awknum=`echo abbc | awk -F"b" '{print NF-1}'` 2:trnum=`echo abbc | tr -c ...
- 安装pipenv
首先: 安装pipenv pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pipenv 使用国内源安装pipenv 创建文件夹 mkd ...
- 11.2.0.1单实例DGduplicate过程
记录一次duplicate完整过程1)环境说明数据库版本oracle11.2.0.1,os linux 6.6备库应用的归档,最近一次是三个月前,由于DG环境以前是好的,因此直接迁移数据即可.本次使用 ...
- python 启动shell报错 Subprocess Startup Error
如图所示启动python的IDLE以后,按F5启动module或者启动shell的时候就会启动失败提示上面错误,刚开始百度知道解决方案不靠谱,最后找到原因是我之前看小甲鱼的教学视频时,新建了一个pic ...
- window10单机安装storm集群
适合范围:storm自由开源的分布式实时计算系统,擅长处理海量数据.适合处理实时数据而不是批处理. 安装前的准备 1.安装zookeeper ①下载zookeeperhttps://zookeeper ...
- 修改hots指向
C:\Windows\System32\drivers\etc hots文件 IP 服务器名称
- 14JDBC
一.JDBC简介 全名:java database connection java代码与数据库相连的工具,java>JDBC>(oracle mysql sql server) 二.四大 ...
- Spring Boot + JPA 因为 javassist 包出现 NullPointerException 问题的解决
Caused by: org.hibernate.MappingException: Could not get constructor for org.hibernate.persister.ent ...