C++拾遗(四)指针相关
指针声明与初始化
在将指针初始化为一个确定的地址后,才能安全的对指针使用 *操作。
将整数赋值给指针时要使用强制转换(typeName *)。
分配内存
C中用malloc();
C++更提倡使用new操作符。
new typeName;如果成功则返回一个适合typeName的地址并返回;
如果失败则返回空指针0。
释放内存
delete pointer;释放的是pointer指向的内存,pointer本身不会被删除。
delete和new要配对使用,除此之外,对空指针delete是安全的。
如果new[]为数组分配内存,则用delete[]来释放。
new和delete可以不在一个函数中。
指针与数组名的区别
1.指针是变量;而数组名是常量。(意味着指针变量可以进行+1等计算操作,而数组名则不行。)
2.sizeof:指针得到的是指针的长度;数组名则得到数组的长度。
3.cin>>可以使用数组名来输入,不能使用指针。
指针与const
形如 int * const sample 的指针是本身值为常量的指针,本身sample的值不能改,只能指向一个地址,但是指向的地址的值若不是const则可以被改。
形如 const int * sample 的指针是指向一个const int的指针,本身sample的值可以更改,这里的const int只是对于指针sample来说是const的。
总的来说:1.只能将非const数据的地址赋给非const指针。
2.可将非const和const数据的地址赋给const指针。(但是,如果是指向指针的指针,则不能将非const地址赋给const指针)
C++拾遗(四)指针相关的更多相关文章
- golang拾遗:指针和接口
这是本系列的第一篇文章,golang拾遗主要是用来记录一些遗忘了的.平时从没注意过的golang相关知识.想做本系列的契机其实是因为疫情闲着在家无聊,网上冲浪的时候发现了zhuihu上的go语言爱好者 ...
- Struts2(四)——页面相关内容
上篇博客总结了数据流转各个方面的内容,这篇重点说一下框架对于界面上知识. 一,说到页面,记得在总体介绍中,说到Struts2比Struts1的一方面优势就是它支持更多的视图技术(Freemarker, ...
- java基础知识拾遗(四)
1.Runnable对象 启动线程:(new Thread(new MyRunnable()).start() 2.jsp中<%@ page language="java" ...
- 【linux+C】神器 vim + 指针相关客串
前篇回顾 上篇介绍了linux下C编程基本环境配置以及相关工具使用选择. 不过10个大牛9个用vim,那么咱们就来玩vim.linux下玩c就别依靠图形界面.好吧告别Ide,命令行才是c的王道. 本篇 ...
- [Java拾遗四]JavaWeb基础之Servlet_Request&&Response
今天来回顾下之前学过Servle的Resquest以及Response的知识.1,Request和Response技术: rr的作用: request是请求,封装用户的请求信息.若 ...
- C语言中和指针相关的四道题目
例子1. void fun (int *x , int *y) { printf("%d, %d", *x, *y) ; *x = 3; *y = 4;} main(){ int ...
- Go指针相关
结合这个例子分析一下 结果: 结合以往C语言的基础,画了一张图来解释为什么会有上面这些值的出现.先查看下Go中的这两个运算符是啥吧. ①对于所有带a的结果 var a int = 1 定义了一个变量a ...
- Spark源码剖析 - SparkContext的初始化(四)_Hadoop相关配置及Executor环境变量
4. Hadoop相关配置及Executor环境变量的设置 4.1 Hadoop相关配置信息 默认情况下,Spark使用HDFS作为分布式文件系统,所以需要获取Hadoop相关配置信息的代码如下: 获 ...
- javascript基础拾遗(四)
1.什么是闭包 正常函数,执行完毕后相关的参数,变量就释放掉了. 当一个函数的返回值是另一个函数时,该函数的相关参数和变量都会保存在返回的函数中,这种结构叫做闭包. 2.示例 计算数组和 functi ...
随机推荐
- 转:cookie和session(二)——php应用
文章来自于:http://blog.csdn.net/half1/article/details/21650211 本文将介绍cookie在session在php中的基本用法. 1.cookie ...
- 在安装包运行时指定Component的安装路径
Basic MSI工程类型中如果实现动态指定安装路径的功能,下面介绍的方法也适用于InstallScript MSI工程. 1. 在Setup Design中找到相对应的Component. 2. 点 ...
- [转]C# FileSystemWatcher监控指定文件或目录的文件的创建、删除、改动、重命名等活动
觉得这个很常用..比如一些软件. http://www.rabbit8.cn/DoNet/407.html FileSystemWatcher控件主要功能: 监控指定文件或目录的文件的创建.删 ...
- 14.1.3 检查InnoDB 可用性:
14.1.3 Checking InnoDB Availability 14.1.3 检查InnoDB 可用性: 确定是否你的server 支持InnoDB: 1.执行命令 SHOW ENGINES; ...
- 【HDOJ】1510 White Rectangles
这个题目很好,变形的题目也很多.简单DP. /* 1510 */ #include <cstdio> #include <cstring> #include <cstdl ...
- centos ppp拨号
CentOS 6.4 电信ADSL 拨号连接的配置,亲测 .下载 rp-pppoe-3.8.tar.gz http://down1.chinaunix.net/distfiles/rp-pppoe-3 ...
- MySQL通用批量写入工具(Python)
背景 平台目前的分析任务主要以Hive为主,分析后的结果存储在HDFS,用户通过REST API或者Rsync的方式获取分析结果,这样的方式带来以下几个问题: (1)任务执行结束时间未知,用户 ...
- HBase Endpoint
引言 假设HBase某张表有1000个Region,里面存储着100万行数据,现在需要统计满足某些条件的行数,普通的做法是使用Filter(过滤条件),通过HBase API将满足过滤条件的行数据 ...
- AES - Rijndael 算法(二)
三:Rijndael算法实现(C++版本) /*-------------------- Rijndael round subkeys ---------------------*/u8 roundK ...
- tengine rpm制作
最近又在centos6.4下折腾tengine了,刚好不久前看了rpm包的制作方法,所以又有了搞个rpm包的想法. 1 安装centos的开发环境集成包及tengine的依赖包 1 yum group ...