首页 > 其他分享 >一些简单的指针操作(day3)

一些简单的指针操作(day3)

时间:2022-11-06 11:31:59浏览次数:41  
标签:存储 变量 指向 简单 day3 地址 printf 指针

1.认识指针的一些基本性质

通过下面几段代码理解指针操作指定变量的一些基础性质。

实例

#include<stdio.h>


int main()

{

int a = 2 ;

int* p = &a;

printf("%d\n", a);

printf("%p\n", &a);

printf("%p\n", p);

*p = 4;

printf("%d\n", a);

printf("%p\n", &a);

printf("%p\n", p);

return 0;

}

结果

2

000000E0F719F554   //地址是由十六进制显示

000000E0F719F554

4

000000E0F719F554

000000E0F719F554

在主程序中,我们首先设置了一个整型变量a,随后将2存储于该变量内,随后我们设置了一个指针变量p,用以对a进行操作。

我们打印出a的值/a的地址/指针p指向的地址

可以得出指针的一个基本性质:指针变量实际上就是一个存储原变量地址的变量。在打印指针变量的地址时,指针会直接指向原变量的地址,而非指针变量自身的地址,这是因为指针变量的存储位置是一个特殊的工作区,指针此时类似于一种快捷方式,它的所有性质总会直接指向原变量。

现在,我们通过解引用指针p,将整型4存储在变量a的地址,打印后我们可以看到,解引用直接帮助我们找到原变量的存储地址,随后将新的数值放了进去。

以上可以理解为,我们通过拿出抽屉里的房间号牌,将已经预定的房间内里原来存放的东西清理掉,随后放入新的东西。这个过程我就不需要去理解我原来叫这个房间是a还是b或是其他名字了,我只需要直接拿着号牌找到该房间即可。

实例2

​#include<stdio.h>


int main()

{

double a = 1.34;

double* pa = &a;

printf("%d", sizeof(pa));

 

return 0;

}

结果

8


我们设置了一个double类型的变量,向内存申请了8个字符存储3.14随后我们设置了一个double类型的指针变量pa,用来指向该变量,我们尝试打印pa指向的a变量所申请的内存大小,结果显然是整型数8,因为指针变量的性质只指向原变量。



感兴趣的初学者可以尝试short类型,char类型等等,来熟悉指针的基本性质。


标签:存储,变量,指向,简单,day3,地址,printf,指针
From: https://blog.51cto.com/u_15862591/5827247

相关文章

  • Day3:学习Java的第一步:Hello World!
    HelloWorld新建一个文件夹存放代码新建一个JAVA文件文件后缀名为.javaHello.java打开文件扩展名,即可查看到文件类型运行文件:右键Hello.java文件用notep......
  • 双指针的应用
    双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。也可以延伸到多个数组的多个指针。若两个指针指向同一数组,遍历方向相同且不会相交,则也称为滑动窗口(两个......
  • 从0开始梳理django项目_3.打回原形,构建docker基础环境(day3)
    构建过程下载python模块比较费劲,先构建出来基础镜像,上传到docker仓库![root@ansibledjango_uwsgi]#dockerlogin-uxiaorenwudashuju[root@ansibledjango_uwsgi]#......
  • 指针与删除
    指针与删除删除指向指针数组的指针有以下代码:int**p;p=newint*[5];表示p为一个指向int型指针的指针,指向了一个int型数组的首地址,该数组中存放的int型指针我们如......
  • 最简单的LED驱动
    #include"asm-generic/errno-base.h"#include"asm-generic/gpio.h"#include"asm/uaccess.h"#include<linux/module.h>#include<linux/poll.h>#include<linux/f......
  • 实验4 类与数组、指针
    实验任务5vectorInt.hpp#pragmaonce#include<iostream>#include<cassert>usingnamespacestd;classvectorInt{public:vectorInt(intn);vectorIn......
  • Python中语音播报的应用(简单版)
    今天分享一个有点好玩的小功能。业务场景:很多小伙伴都坐在写字楼里面办公,忙着忙着就到了中午,把点餐的事情给忘记了。解决的办法也简单,就是在手机上设置闹钟就行了。作为技......
  • 实验4 类与数组、指针
    task5VectorInt.h#pragmaonce#include<iostream>#include<cassert>usingnamespacestd;classVectorInt{public:VectorInt(intn);VectorInt(int......
  • 实验4 类与数组、指针
    实验任务51#pragmaonce2#include<iostream>34usingstd::cout;5usingstd::endl;67classvectorInt{8public:9//构造函数和析构函数1......
  • 不要小瞧了Map接口,实现一个Map对象并不简单!
    不要小瞧了Map接口,实现一个Map对象并不简单!这篇文章我们不谈别的,就讲讲Map接口,以及Map集合的一个重要的概念,Map的元素的散列。实现Map接口如果我们想自己定义一个Map需要......