指针基础_C / C++

指针

特点

1.指针数据类型所占用的空间: 四个字节(32位操作系统),八个字节(64位操作系统)

【sizeof(int * ) or sizeof(p)】

2.空指针:指针变量空间指向内存中编号为0的空间,通常用于指针的初始化

【注意空指针是不可以访问的】

// 内存编号 0 ~ 255 为系统占用的内存,不允许用户访问
int * p = NULL;

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

int * p = ( int * )0x1100;

4.const修饰指针

1.const修饰指针--常量指针
// 指针指向可以更改,但是指针指向的值不可以更改
// 也就是说可以指向一个别的值不相等的指针
    const int * p1 = &a;
    p1 = &b;
2.const修饰常量--指针常量
// 指针指向不可以改,但是指针指向的值可以改
    int * const p2 = &a;
    *p2 = 100;
3.const即修饰指针,又修饰常量
// 指针指向和指针指向的值都不可以改
    const int * const p;

5.指针与数组

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

// 利用指针访问数组第一个元素
    int * p = arr;
// 让指针向后获取下一元素地址
    p++;
注:int * arr == &arr[0]

6.指针与函数

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

// 值传递
void swap1(int a, int b){
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
}
​
// 地址传递
void swap2(int * p1, int * p2){
    *p1 = *p1 ^ *p2;
    *p2 = *p1 ^ *p2;
    *p1 = *p1 ^ *p2;
}

示例

1.定义指针
int a = 10;
// 指针定义语法: 数据类型*指针变量名
int * p;
// 让指针记录变量a的地址
p = &a;
cout<<"a的地址为:"<<&a<<endl;
cout<<"指针p为:"<<p<<endl;
​
2.使用指针
// 可以通过解引用的方式来找到指针指向的内存
// 指针前加 * 代表解引用,找到指针指向的内存中的数据
​
*p = 100;
cout<<"*p = "<<*p<<endl;
​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值