C语言C++指针

指针

指针的定义:数据类型 * 指针的变量名

#include<iostream>
using namespace std;

int main()
{
    //定义指针:数据类型 * 指针变量名
    int a = 10;
    int *p;
    //指针指向变量a的地址
    p = &a;
    cout<<"a的地址为:"<<&a<<endl;
    cout<<"p的值为:"<<p<<endl;
    //可以通过解引用的方式来找到指针指向;内存中的数据;
    cout<<*p<<endl;

}

指针所站的内存空间:

在32位的操作系统下:占4个字节

在64位的操作系统下:占8个字节count

cout<<sizeof(int *)<<endl;

在这里插入图片描述

空指针:

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

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

  • 初始化我们的变量

        //空指针
        int *p1 = NULL;
        *p1 = 1000;
        cout<<*p1<<endl;//这是会报错的
    

野指针:

空指针指向的内存是非法的空间(不是我申请的空间)

const 修饰指针:

  • const修饰指针:常量指针
    常量指针指向可以改,指针指向的值不可以修改
    可以操作p,但是不可以操作*p
int a = 10;
int b = 20;
const int *p = &a;
p = &b;//True
*p  = 30;//false
  • const修饰常量:(指针常量)
    指针常量,指针的只想不可以改,指针指向的值可以改;
    可以操作*p,但不可以操作p
const int * const p = &a;
p = &b;//false
*p= 20;//ture
  • const修饰指针和常量:
const int * const p = &a;
//特点,即不可以修改指向,也不可以修改指针指向内存的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值