C语言变量、指针的内存关系

 1.

type p = ?

表示从内存地址p开始,开辟一段内存,内存大小为类型type规定的字节数,然后把等号右边的值写入到这段内存中。

因此,这块内存起点位置是p,结束是p+type字节数-1。

2.

type* p = ?

表示从内存地址p开始,开辟一段内存,用于存放地址,被存放的地址的值类型为type。 64为系统上,开辟的内存大小为固定8字节,与type的具体类型无关。因为指针变量保存的是地址,其大小与寻址空间有关。 换言之,只要是指针变量,其大小就是8字节。因为8字节可以表示64位所有地址。 可想而知,在32位系统上,指针变量大小是4字节。

3.

p = ?

表示向内存地址p上写入等号右边的数。

4.

? = p

表示取出地址p上的值,放入寄存器,给等号左边使用。

5.

? = &p

表示取出地址p,放入寄存器,给等号左边使用。

6.

? = *p

表示取出地址p的值指向的地址的值,放入寄存器,给等号左边使用。

7.

int *p = &q

开辟地址p,在地址p上写入地址q,且地址p的值指向的地址的值类型是int。并且用"*"来声明C是地址,可以做*p运算,使得*p写法能通过编译。

8.

int *p = C

开辟地址p,在地址p上写入常数C。且声明C指向的地址的值是int。

这种写法能通过编译,也能运行。但是地址的分配是在运行时才发生,除非该常数在运行时恰好命中一个已分配的地址,否则在运行时会报错。

9.

10.

11.

12. 

char* p = "hello";

这句代码开辟了两块内存空间:

首先,在内存常量区开辟地址q,写入连续的字符“hello”,以及最后的结尾标识符“\0”。共6字节。

然后,开辟地址p,在地址p上写入地址q,且声明地址q的值类型是char。因此p实际上是一个指向字符的指针。*p的运算结果是第一个字节h。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/30938.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity3d 游戏暂停(timeScale=0)引起的deltaTime关联的系列问题解决

问题描述 游戏暂停的功能是通过设置timeScale0实现的,不过在暂停游戏的时候,需要对角色进行预览和设置,为了实现这个功能,是通过鼠标控制相机的操作,为了使相机的操作丝滑,获取鼠标操作系数乘以Time.delta…

Opencv学习项目3——pytesseract

上一次我们使用pytesseract.image_to_data(img)来检测文本,这次我们来只检测数字 项目演示 可以看到,我们只检测了数字其他的并没有检测出来 代码实现 前面两次介绍了opencv的画矩形和设置文本,这次就直接用了,不太明白的可以看…

数据资产与用户体验优化:深入挖掘用户数据,精准分析用户需求与行为,优化产品与服务,提升用户体验与满意度,打造卓越的用户体验,赢得市场认可

一、引言 在数字化时代,数据已经成为企业最宝贵的资产之一。通过深入挖掘和分析用户数据,企业能够精准把握用户需求和行为,从而优化产品与服务,提升用户体验和满意度。这不仅有助于企业在激烈的市场竞争中脱颖而出,还…

Java基础 - 练习(四)打印九九乘法表

Java基础练习 打印九九乘法表&#xff0c;先上代码&#xff1a; public static void multiplicationTable() {for (int i 1; i < 9; i) {for (int j 1; j < i; j) {// \t 跳到下一个TAB位置System.out.print(j "" i "" i * j "\t"…

Linux 多进程情况下文件读写加锁

文件读取加锁: #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <sys/stat.h> #include <sys/file.h> #define LOCK_FILE "/root/priv/cjson/test.lock" #define DA…

在php中的序列化与反序列化

序列化与反序列化的定义&#xff1a; 序列化是指把对象转化为可传输的字节序列过程&#xff0c;而反序列化是指把字节序列还原为对象的过程。序列化和反序列化是数据持久化和网络传输中常用的技术手段&#xff0c;它们使得数据可以在不同平台、不同系统之间进行有效的存储和通信…

HTML 中怎样优化图像加载以提高网页性能?

优化图像加载可以提高网页性能&#xff0c;以下是一些常见的优化方法&#xff1a; 缩小图像尺寸&#xff1a;使用合适的图像尺寸可以减小文件大小&#xff0c;加快加载速度。可以使用图像编辑工具将图像调整到适合网页显示的尺寸。 压缩图像文件&#xff1a;使用图像压缩工具可…

戏剧之家杂志戏剧之家杂志社戏剧之家编辑部2024年第14期目录

文艺评论 南戏瓯剧跨文化传播研究 陈晓东;高阳;许赛梦; 3-7 论互联网时代的戏剧传播与批评——以西法大剧社和南山剧社为例 邬慧敏; 8-10 “左手荒诞&#xff0c;右手温情”——《西西弗神话》在戏剧《第七天》中的接受探究 赵稳稳; 11-13 戏剧研讨《戏剧之家》投稿…

[SAP ABAP] 数据类型

1.基本数据类型 示例1 默认定义的基本数据类型是CHAR数据类型 输出结果: 示例2 STRING数据类型用于存储任何长度可变的字符串 输出结果: 示例3 DATE数据类型用于存储日期信息&#xff0c;并且可以存储8位数字 输出结果: 提示Tips&#xff1a;日期和时间类型的变量可以直接进…

网络安全筑基篇——SQL注入

目录 前言 什么是SQL&#xff1f; 什么是SQL注入&#xff1f; SQL注入的危害有哪些&#xff1f; SQL注入有哪些类型&#xff1f; SQL注入的一些思路 首先得判断SQL注入是否存在 判断SQL注入点 判断数据库的一个类型 SQL注入的防范措施 前言 本文可能有些许的难以理解…

openh264 帧级码率控制源码分析

openh264 码率控制结构 关于 openh264 码率控制整体结构&#xff0c;可以参考&#xff1a;openh264 码率控制原理框架。 openh264 帧级码率控制介绍 函数关系图&#xff1a;从图可以看出&#xff0c;帧级码控的核心函数就是WelsRcPictureInitGom、WelsRcPictureInfoUpdateGo…

DAB-DETR

论文地址&#xff1a; https://arxiv.org/pdf/2201.12329 文章通过前人的经验得出&#xff0c;导致 DETR 训练速度慢的原因很大可能是因为 decoder 中 cross attention 这个模块&#xff0c;由上面的对比可以看出其与 self attention 的区别主要就在于query的不同。文章猜想两个…

LC15.三数之和、LC22括号生成

LC15.三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的…

【Python办公自动化之Word】

python办公⾃动化之-Word python-docx库 文章目录 python办公⾃动化之-Word1、安装python-docx库2、⽂档的结构说明3、基本操作语法3.1 打开⽂档3.2加⼊不同等级的标题3.3 添加⽂本3.4 设置字号插曲1&#xff1a;实战演示3.5 设置中⽂字体3.6 设置斜体3.7 设置粗体3.8⾸⾏缩进…

H3C防火墙抓包(图形化)

一.报文捕获 &#xff0c;然后通过wireshark查看报文 二.报文示踪 &#xff0c; 输入源目等信息&#xff0c; 查看报文的详情

使用Docker Compose运行Nginx

使用Docker Compose运行Nginx可以更方便地管理和配置多个容器。以下是步骤&#xff1a; 1. 安装Docker Compose 首先&#xff0c;确保已经安装了Docker和Docker Compose。如果没有安装&#xff0c;可以参考官方文档进行安装&#xff1a;Docker Compose安装指南 2. 创建项目目…

mongodb 集群安装

整体架构图&#xff1a; 1. 配置域名 Server1&#xff1a; OS version: CentOS Linux release 8.5.2111 hostnamectl --static set-hostname mongo01 vi /etc/sysconfig/network # Created by anaconda hostnamemong01 echo "192.168.88.20 mong1 mongo01.com mongo…

返回给前端数据的封装

返回格式如下&#xff1a; { "code": 200/400, "msg": "成功"/"失败", "total": n, "data": [ {}&#xff0c;{}]} 1.在common中新增Result 类&#xff0c;代码如下 package com.xxx0523.common; import lombo…

kylin-v10sp2-Babelfish for PostgreSQL

环境准备 x86_linux_kylin v10 sp2 1、依赖 yum makecache yum install -y uuid-devel 2、源代码 下载支持babelfish的pg&#xff0c;也是babelfish社区维护更新 cd /opt#pg源码&#xff0c;支持babelfish版 git clone https://github.com/babelfish-for-postgresql/post…

不同拷贝【写作中】

【写作中】 .clone() 深拷贝deepcopy() 深拷贝copy() 浅拷贝