C++指针

目录

一、指针的基本概念

二、指针变量的定义和使用

三、指针所占内存空间

四、空指针和野指针

五、const修饰指针

六、指针和数组

七、指针和函数


一、指针的基本概念

指针的作用:可以通过指针间接访问内存

  • 内存百年好是从0开始记录的,一般使用十六进制数字表示
  • 可以利用指针变量保存地址

二、指针变量的定义和使用

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

示例:

#include

#include

using namespace std;

int main()

{

    // 定义指针

    int a=10;

    int *p=NULL;

    // 让指针记录变量a的地址

    p=&a;

    cout<<"a的地址为:"<<&a<

运行结果:

C++指针_第1张图片

三、指针所占内存空间

在32位操作系统下,占用4个字节空间,64位下占用8个字节。

示例:

#include

#include

using namespace std;

int main()

{

    // 定义指针

    int a=10;

    int *p=NULL;

    // 让指针记录变量a的地址

    p=&a;

    // 在32位操作系统下,指针是占4个字节空间大小,不管是什么数据类型

    // 在64位操作系统下,指针是占8个空间大小

    cout<<"指针类型的数据占用的空间大小为:"<

运行结果:

C++指针_第2张图片

四、空指针和野指针

空指针:指针变量指向内存中编号为0的空间

用途:初始化指针变量

注意:空指针指向的内存是不可以访问的

示例:

#include

#include

using namespace std;

int main()

{

    // 空指针

    // 1、空指针用于给指针变量进行初始化

    int *p=NULL;

    // 2、空指针是不可以进行访问的

    // 0~255之间的内存编号是系统占用的,因此不可以访问



    // 访问空指针报错
    
    cout<<*p<

野指针:指针变量指向非法的内存空间

示例:

#include

#include

using namespace std;

int main()

{

    // 野指针

    // 在程序中,尽量避免出现野指针

    int *p=(int *)0x1100;

    cout<<*p<

注意:空指针和野指针都不是我们申请的空间,因此不要访问

五、const修饰指针

const修饰指针有三种情况:

  1. const修饰指针  ---常量指针( const int  *p = &a):指针的指向可以修改,但是指针指向的值不可以修改
  2. const修饰常量  --- 指针常量(int * const p = &a):指针的指向不可以修改,但是指针指向的值可以修改
  3. const既修饰指针,又修饰常量( const int  * const p = &a):指针的指向不可以修改,并且指针指向的值也不可以修改

示例:

#include

#include

using namespace std;

int main()

{

    // 1、const 修饰常量

    int a=10;

    int b=10;



    // const修饰的是指针,指针指向可以改,指针指向的值不可以更改
    
    const int *p1=&a;

    p1=&b; // 正确

    // *p =20 错误



    // 2、const修饰常量

    // 指针的指向不可以更改,指针指向的值可以改

    int * const p2=&a;

    *p2=100;// 正确

    // p2=&b // 错误,指针的指向不可以修改



    // 3、const修饰指针和常量

    // 指针的指向和指针指向的值都不可以更改

    const int * const p3=&a;

    // *p3=10;  // 错误

    // p3=&b;  // 错误
    
    return 0;

}

六、指针和数组

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

示例:

#include

#include

using namespace std;

int main()

{

    // 指针和数组

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



    int arr[10]={1,2,3,4,5,6,7,8,9,10};

    cout<<"遍历这个数组"<

运行结果:

C++指针_第3张图片

七、指针和函数

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

示例:

#include

#include

using namespace std;

// 实现两个数字交换(值传递)

void swap01(int a,int b)

{

    int temp=a;

    a=b;

    b=temp;

    cout<<"swap01 a="<运行结果:

C++指针_第4张图片

你可能感兴趣的:(#,C++基础部分,jvm,开发语言,c++)