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

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
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
函数指针是指向函数的指针,它可以用来执行函数的操作。函数指针基本概念是它的声明格式为type (*ptrname)(形参列表)。其中,type是函数返回值的类型,ptrname是函数指针的名称,形参列表是函数的参数类型。通过使用函数指针,我们可以将函数或者函数指针作为某一个函数的形式参数传入并使用,例如在C++11的thread头文件中,线程的构造函数需要传递一个函数指针的实例。通过使用函数指针,我们可以实现函数的动态调用,灵活地在程序运行时决定要调用的函数。因此,函数指针C语言C++中都是非常重要的概念和工具。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [c++函数指针](https://blog.csdn.net/weixin_50866517/article/details/113247374)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [C++函数指针用法](https://blog.csdn.net/qq_48201696/article/details/122335138)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值