当前位置: 首页 > news >正文

领取流量网站怎么搭建视频网站

领取流量网站,怎么搭建视频网站,四川建设机械网站首页,上海计算机培训机构目录 一、取地址操作符(&) 变量在内存中的存储特点: 二、指针变量和解引用操作符(*) 1、指针变量 2、指针类型的解析 3、解引用操作符 4、关键对比 5、记忆技巧 & 的优先级 * 的上下文依赖 三、指针…

目录

一、取地址操作符(&)

变量在内存中的存储特点:

二、指针变量和解引用操作符(*)

1、指针变量

2、指针类型的解析

3、解引用操作符

4、关键对比

5、记忆技巧

& 的优先级

* 的上下文依赖

三、指针变量的大小

指针变量的大小取决于系统的寻址能力:

验证代码:

结论:

注意:


一、取地址操作符(&)

        理解了内存和地址的关系后,我们来看C语言中的具体实现。在C语言中创建变量其实就是向内存申请空间。例如:

#include <stdio.h>
int main()
{int a = 10;return 0;
}

        这段代码创建了一个整型变量a,内存中申请了4个字节的空间用于存放整数10。每个字节都有其唯一的地址,假设这4个字节的地址分别是:0x006FFD70、0x006FFD71、0x006FFD72、0x006FFD73

要获取变量a的地址,我们需要使用取地址操作符(&):

#include <stdio.h>
int main()
{int a = 10;printf("%p\n", &a); // 打印a的地址return 0;
}

        运行结果可能会输出类似006FFD70的地址值。需要注意的是,&a取出的是a所占4个字节中地址最小的那个字节的地址(即首地址)。

变量在内存中的存储特点

        虽然整型变量占用4个字节,但只要知道了第一个字节的地址,就可以通过这个地址访问到后续的3个字节,从而获取完整的整型数据。


二、指针变量和解引用操作符(*)

1、指针变量

        通过取地址操作符获取的地址(如0x006FFD70)是一个数值,有时我们需要存储这个地址以便后续使用。存储地址的变量称为指针变量。

示例:

#include <stdio.h>
int main()
{int a = 10;int *pa = &a; // 定义指针变量pa并存储a的地址return 0;
}

        指针变量是一种特殊的变量,专门用于存储内存地址。存储在指针变量中的值都会被解释为内存地址。

2、指针类型的解析

观察指针变量的定义int *pa

  • *表示pa是一个指针变量

  • int表示pa指向的是一个整型(int)类型的对象

对于不同类型的变量,需要使用相应类型的指针:

char ch = 'w';
char *pc = &ch; // pc是指向char类型的指针

3、解引用操作符

获取地址后,我们可以通过解引用操作符(*)来访问或修改该地址指向的值:

#include <stdio.h>
int main()
{int a = 100;int *pa = &a;*pa = 0; // 通过指针修改a的值return 0;
}

这里*pa = 0等价于a = 0。使用指针的好处在于:

  1. 提供了另一种访问和修改变量的途径

  2. 使代码更加灵活

  3. 为后续学习指针的高级用法打下基础

4、关键对比

符号

上下文

含义

示例

&

单目运算符

取地址

&a

&

双目运算符

按位与

a & b

*

声明/单目运算符

解引用

*p

*

双目运算符

乘法

a * b

5、记忆技巧

& 的优先级

  • 出现在赋值右侧时表示取地址
  • 出现在表达式中间时表示按位与

* 的上下文依赖

  • 在变量声明中(如 int *p)表示指针类型
  • 作为单目运算符时表示解引用
  • 在算术运算中表示乘法

三、指针变量的大小

        根据前面的内容我们知道,32位机器拥有32根地址总线。每根地址线输出的电信号转换为数字信号后为1或0,因此32根地址线产生的二进制序列就是一个地址,这个地址由32位组成,⼀个地址就是32个bit位,需要4个字节来存储。由于指针变量用于存储地址,因此指针变量的大小必须为4个字节。

        同理,在64位机器上,假设有64根地址线,一个地址就是由64位二进制数组成的序列,存储这样的地址需要8个字节的空间,因此64位机器上的指针变量大小为8个字节。所以:

指针变量的大小取决于系统的寻址能力:

  • 32位系统:地址总线是32位,因此地址需要4个字节存储

  • 64位系统:地址总线是64位,因此地址需要8个字节存储

验证代码:

#include <stdio.h>
int main()
{printf("%zd\n", sizeof(char *));printf("%zd\n", sizeof(short *));printf("%zd\n", sizeof(int *));printf("%zd\n", sizeof(double *));return 0;
}

结论

  1. 在32位系统中,地址采用32位表示(32个bit位),指针变量的大小为4字节

  2. 而在64位系统中,地址扩展为64位(64个bit位),相应的指针变量大小增至8字节。

  3. 指针变量的大小与其指向的数据类型无关,在相同平台下所有指针类型的大小都相同

注意:

  • 指针的大小只与系统架构有关,与指针类型无关

  • 在编写跨平台程序时需要注意指针大小的差异

http://www.dtcms.com/a/441427.html

相关文章:

  • 宁波网站推广制作自己做博客网站
  • 有关网站设计的文章wordpress托管套餐
  • 建设工程扣分查询网站长沙有什么做试卷的网站
  • 宁波建网站哪家好用点怎么制作网页链接在微信上发
  • 南昌网站推广医学网站建设风格
  • 有什么网站是帮别人做设计的百度智能云windows系统服务器建站
  • 山西省消防总队建设工程备案网站wordpress 登录密码
  • phpcms 专题网站模板手游传奇网站
  • 哔哩哔哩网站怎么做视频软件楼市最新消息
  • 网站怎么做备案大朗做网站在
  • 最新网站建设的模板下载成都实验室装修设计公司
  • 电子商务网站建设与管理课程论文南京润盛建设集团有限公司网站
  • 东莞南城外贸网站建设做搜索引擎网站
  • 做导航网站怎么盈利wordpress 交流群
  • html网站开头怎么做的制作网页需要什么软件
  • 厦门企业网站设计公司二建注册查询系统
  • 利用微博网站做淘客外贸企业网站源码
  • 网站建设续费合同网络营销八大目标是什么
  • 墨星写作网站app下载广州开发区交通投资集团有限公司
  • 北京宏福建设工程有限公司网站wordpress主机记录
  • 小学学校网站建设方案东莞建英文网站的公司
  • 登录官方网站网站和域名区别吗
  • 赣州建设局 网站今天进京最新通知
  • 国外网站流量查询北京市住房和城乡建设网官网
  • 外贸网站产品分析wordpress域名变更
  • 切图做网站如何做怎样注册电商平台成为卖家
  • 大学生html网页设计作业江苏网站优化建站
  • 商业网站建设咨询女人脱内衣裤给男人做网站
  • 网站开发项目启动成本WordPress微信如何赚钱
  • 二级域名网站怎么建设如何网站建设