c++ 打印指针地址_c++ c语言 指针基本概念

本文介绍了C++中的指针基础知识,包括内存地址、指针变量的定义与使用、指针类型大小、野指针和空指针的概念,以及const关键字修饰指针的四种形式。还探讨了指针与数组的区别以及指针的运算,如递增、递减和比较。
摘要由CSDN通过智能技术生成

c语言9 - 指针基本概念

指针: 地址,内存单元的编号。

内存单元: 计算机中内存最小的存储单位,大小为一个字节,每个内存单元都有唯一的一个编号,称这个内存单元的编号为:“地址”。

指针变量存指针地址的变量

内存单元与地址关系

如下代码可打印出变量的地址:

#include

int main(void){
 int a = 10;
 printf("%p\n", &a);
 return 0;
}

19b4e1a8a11c40ac1a60b964cc125717.png

即如下图;地址00062FE1C若存储变量a的值,a=10,则该地址的二进制符号为00001010,其余三个地址的符号为00000000,即剩下三个地址均为a变量使用,且留空。

416185c6a5575990f9c00e2c6677b832.png

指针

*p 指针变量

*p的意思就是,将p变量的内容取出,当成地址看待,找到该地址对应的内存空间。若作为左值,则存数据到空间中,若作为右值,则取出空间的内容。

数据在内存中的地址也称为[指针],如果一个变量存储了一份数据的指针,我们就称它为指针变量

允许用一个变量来存放指针,这种变量称为指针变量。指针变量的值就是某份数据的地址,这样的一份数据可以是数组、字符串、函数,也可以是另外的一个普通变量或指针变量。

定义指针变量

定义指针变量与定义普通变量非常类似,不过要在变量名前面加星号*,格式为:

datatype *name;

或者

datatype *name = value;

*表示这是一个指针变量,datatype表示该指针变量所指向的数据的类型 。例如:

int *p1;

p1 是一个指向 int 类型数据的指针变量,至于 p1 究竟指向哪一份数据,应该由赋予它的值决定。再如:

int a = 100;
int *p_a = &a;

在定义指针变量 p_a 的同时对它进行初始化,并将变量 a 的地址赋予它,此时 p_a 就指向了 a。值得注意的是,p_a 需要的一个地址,a 前面必须要加取地址符&,否则是不对的。和普通变量一样,指针变量也可以被多次写入。

获取指针数据

指针变量存储了数据的地址,通过指针变量能够获得该地址上的数据,格式为:

*pointer;

这里的*称为指针运算符,用来取得某个地址上的数据

#include 
int main(){
    int a = 10;
    int *p = &a;
    printf("%d, %d\n", a, *p);
 printf("&a = %u, &*p = %u, &p = %u\n",&a, &*p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值