指针声明与初始化

在将指针初始化为一个确定的地址后,才能安全的对指针使用 *操作。

将整数赋值给指针时要使用强制转换(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++拾遗(四)指针相关的更多相关文章

  1. golang拾遗:指针和接口

    这是本系列的第一篇文章,golang拾遗主要是用来记录一些遗忘了的.平时从没注意过的golang相关知识.想做本系列的契机其实是因为疫情闲着在家无聊,网上冲浪的时候发现了zhuihu上的go语言爱好者 ...

  2. Struts2(四)——页面相关内容

    上篇博客总结了数据流转各个方面的内容,这篇重点说一下框架对于界面上知识. 一,说到页面,记得在总体介绍中,说到Struts2比Struts1的一方面优势就是它支持更多的视图技术(Freemarker, ...

  3. java基础知识拾遗(四)

    1.Runnable对象 启动线程:(new Thread(new MyRunnable()).start() 2.jsp中<%@ page language="java" ...

  4. 【linux+C】神器 vim + 指针相关客串

    前篇回顾 上篇介绍了linux下C编程基本环境配置以及相关工具使用选择. 不过10个大牛9个用vim,那么咱们就来玩vim.linux下玩c就别依靠图形界面.好吧告别Ide,命令行才是c的王道. 本篇 ...

  5. [Java拾遗四]JavaWeb基础之Servlet_Request&&Response

    今天来回顾下之前学过Servle的Resquest以及Response的知识.1,Request和Response技术:    rr的作用:        request是请求,封装用户的请求信息.若 ...

  6. C语言中和指针相关的四道题目

    例子1. void fun (int *x , int *y) { printf("%d, %d", *x, *y) ; *x = 3; *y = 4;} main(){ int ...

  7. Go指针相关

    结合这个例子分析一下 结果: 结合以往C语言的基础,画了一张图来解释为什么会有上面这些值的出现.先查看下Go中的这两个运算符是啥吧. ①对于所有带a的结果 var a int = 1 定义了一个变量a ...

  8. Spark源码剖析 - SparkContext的初始化(四)_Hadoop相关配置及Executor环境变量

    4. Hadoop相关配置及Executor环境变量的设置 4.1 Hadoop相关配置信息 默认情况下,Spark使用HDFS作为分布式文件系统,所以需要获取Hadoop相关配置信息的代码如下: 获 ...

  9. javascript基础拾遗(四)

    1.什么是闭包 正常函数,执行完毕后相关的参数,变量就释放掉了. 当一个函数的返回值是另一个函数时,该函数的相关参数和变量都会保存在返回的函数中,这种结构叫做闭包. 2.示例 计算数组和 functi ...

随机推荐

  1. 【JavaScript】JavaScript教程之------------------JavaScript实现

    JavaScript的核心ECMAScript描述了该语言的语法与基本对象: DOM描述了处理网页内容的方法和接口: BOM描述了与浏览器进行交互的方法和接口: 完整的JavaScript实现是由以下 ...

  2. jquery validate 自定义验证方法 日期验证

    jquery validate有很多验证规则,但是更多的时候,需要根据特定的情况进行自定义验证规则. 这里就来聊一聊jquery validate的自定义验证. jquery validate有一个方 ...

  3. 【转】HashMap和HashSet的区别

    原文网址:http://www.importnew.com/6931.html HashMap和HashSet的区别是Java面试中最常被问到的问题.如果没有涉及到Collection框架以及多线程的 ...

  4. java集合简介

    java集合主要包括以下几点 Java 集合概述 Collection 接口 Iterator 接口 Set List Map Collections 工具类 Enumeration 1.java集合 ...

  5. linux enable命令学习

    shell命令用来启动或关闭shell内建命令. 通过type命令查看可以知道,enable命令本身也是一个shell内建命令. sh-# type enable enable is a shell ...

  6. Linux内核-内核线程

    线程分类:内核线程.用户线程(指不需要内核支持而完全建立在用户空间的线程库,这种线程效率高,由于Linux内核没有轻量级进程(线程)的概念,因此不能独立的对用户线程进行调度,而是由一个线程运行库来组织 ...

  7. Mysql事务及行级锁的理解

    在最近的开发中,碰到一个需求签到,每个用户每天只能签到一次,那么怎么去判断某个用户当天是否签到呢?因为当属表设计的时候,每个用户签到一次,即向表中插入一条记录,根据记录的数量和时间来判断用户当天是否签 ...

  8. [Angular 2] Using ngrx/store and Reducers for Angular 2 Application State

    ngrx/store is a library that simplifies common RxJS patterns for managing state and gives you an eas ...

  9. [Protractor] Testing With Protractor Page Objects

    Protractor Page Objects are a recommended for testing your AngularJS applications. Page Objects abst ...

  10. vector容器经常用法

    容器简单介绍 定义及初始化 末尾插入元素 遍历 size 函数是能够动态添加的 通过下标操作添加改变vector内容不是安全的操作 仅能对已存在元素进行下标操作不存在会crash 将元素一个容器复制给 ...