首页 > 系统相关 >Linux C++ 007-指针

Linux C++ 007-指针

时间:2024-03-28 13:00:44浏览次数:30  
标签:const 常量 指向 int C++ 007 Linux 修饰 指针

Linux C++ 007-指针

本节关键字:Linux、C++、指针、函数指针
相关库函数:

基本概念

指针的作用:可以通过指针间接访问内存。内存编号是从0开始记录的,一般用于十六进制数字表示,可以利用指针变量保存地址。

定义和使用

指针变量定义语法:数据类型 * 变量名;

指针所占内存空间,指针也是种数据类型。

  • 32位操作系统下,占4字节;
  • 64为操作系统下,占8字节。

空指针和野指针

指针类型说明用途注意事项
空指针指针变量指向内存中编号为0的空间初始化指针变量空指针指向的内存是不可以访问的
野指针指针变量指向非法的内存空间应该禁止使用野指针访问野指针会导致意想不到的结果

const修饰指针

const修饰指针有三种情况:

const修饰指针说明举例
const修饰指针(常量指针)指针指向可以改,指针指向的值不可以更改const int* p = # int const* p = #
const修饰常量(指针常量)指针指向不可以改,指针指向的值可以更改int* const p = #
const既修饰指针,又修饰常量指针的指向和指针指向的值 都不可以更改const int* const p = # int const* const p = #

总结:看const右侧紧跟着的是指针还是常量,是指针就是常量指针,是常量就是指针常量

指针和数组

作用:利用指针访问数组中的元素

int arr[5] = {1,2,3,4,5};
int *p = arr;
cout << arr[0] << arr[1] << endl;
cout << p[0] << p[1] << endl;

指针和函数

作用:利用指针做函数参数,可以修改实参的值

// 函数指针:返回值类型 (*指针变量名) (形参列表)
int func(int c);
int (*p)(int c);
p = func;

// 指针函数:返回值类型* 函数名(参数列表)
int* func(int x, int y);

指针、数组、函数

案例描述:封装一个函数,利用冒泡排序,实现对整型数组的升序排序

标签:const,常量,指向,int,C++,007,Linux,修饰,指针
From: https://blog.csdn.net/qq_45157350/article/details/135867192

相关文章

  • Linux C++ 008-结构体
    LinuxC++008-结构体本节关键字:Linux、C++、结构体相关库函数:基本概念结构体属于用户自定义的数据类型,允许用户存储不同的数据类型。定义和使用语法:struct结构体名{结构体成员列表};通过结构体创建变量的方式有三种struct结构体名变量名struct结构体名变......
  • C++ Primer Plus 代码学习解析(第三章 3.8-3.11)
    3.8floatnum.cpp#include<iostream>intmain(){usingnamespacestd;cout.setf(ios_base::fixed,ios_base::floatfield);floattub=10.0/3.0;doublemint=10.0/3.0;constfloatmillion=1.0e6;cout<<&......
  • Linux——磁盘与文件系统管理
    目录磁盘分区的表示硬盘分区分区类型确认系统中的磁盘设备——fdisk规划硬盘中的分区——fdisk文件系统 文件系统类型:在分区中创建文件系统——mkfs,mkswap挂载文件系统mount命令umount命令查看分区挂载情况设置启动载入(永久挂载文件系统)建立一个新文件系统步骤......
  • C++之STL整理(2)之vector超详用法整理
    C++之STL整理(2)之vector用法(创建、赋值、方法)整理注:整理一些突然学到的C++知识,随时mark一下例如:忘记的关键字用法,新关键字,新数据结构C++的vector用法整理C++之STL整理(2)之vector用法(创建、赋值、方法)整理一、vector的初始化1、默认构造函数2、拷贝构造函数copy区间3......
  • 【C++】自增运算符重载及其效率问题
    自增运算符重载总所周知,C++的自增运算符有两种基本使用方法,在这里我们分别称为i++和++i,想必大家在C语言课上已经学了自增运算符和自减运算符,这里就不再赘述,这里主要讲解自增运算符重载,自减运算符完全可以触类旁通。首先了解什么是运算符重载。定义:运算符重载是面向对象编......
  • C++11 新特性:非受限联合体
    在C++11之前,C++的联合体(union)主要被用于内存节省和对不同数据类型的同一片内存区域的访问。然而,传统的联合体存在着严格的限制,它只能包含POD(PlainOldData,简单旧数据类型)类型的成员。也就是说不能在联合体中包含有非平凡(non-trivial)构造函数、复制构造函数、移动构造......
  • Linux常用命令介绍
    Linux常用命令介绍Linux中的命令非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。因为不想在使用时总是东查西找,所以在此总结一下,方便一下以后的查看。下面就说说我最常用的Linux命令。1、cd命令这是一......
  • Linux 命令行终端快捷键汇整
    熟悉键盘操作可以极大地提高操作效率,熟练的Linux用户几乎不需要使用鼠标,仅用键盘就可以更快且更方便地完成所有操作。Linux命令解释器(也可以叫Shell,终端,命令行等)也有很多快捷键,熟练掌握可以极大的提高操作效率。在本文整理一些最常用的快捷键。常用命令行操作快捷键:Ctril......
  • Linux - 批量清除失效软连接
     红底白字,并且一闪一闪的都是失效的软连接,需要批量清除它们...1、打印所有失效软连接find./*-typel-exectest!-e{}\;-exececho{}\; 2、批量清除失效软连接find/path/to/search-typel-exectest!-e{}\;-execrm{}\;    — 要养成终生......
  • Linux - 安装JDK(.tar.gz)
      1、上传jdk-8u351-linux-x64.tar.gz到/opt/module 目录下并解压tar-zxvfjdk-8u351-linux-x64.tar.gz2、配置/etc/profile文件#文件末尾进行配置exportJAVA_HOME=/opt/module/jdk1.8.0_351exportPATH=$PATH:$JAVA_HOME/bin3、使修改生效,并进行验证source/e......