Day20

今天来记录一个简单的概念sizeof,sizeof可以帮助计算型态, 结构体, 与阵列, 与指标的大小,例如
short: 2bytes
long: 4 bytes
double: 8 bytes
double arrary[20]: 160 bytes
值得注意的是指标在32位元作业系统是4 bytes (32/8=4)到了64位元作业系统是8 bytes,由此可知若在64位元作业系统底下,指标拿来指向short反而会浪费记忆体。
虽然在C++中阵列本身就是指标,可以直接将阵列丢给指标变数不会报错*ptr = arrary,但将阵列丢给sizeof时会自动转换成计算整个阵列大小。如

int arrary[20];
int *ptr = arrary;
count << sizeof arrary <<endl;  //get 80 bytes
count << sizeof *ptr <<endl;  //get 4 bytes in 32-bits os, 32/8=4

昨天我们输出结果可以看出来p的记忆体位置与*ptr1的记忆体位置差4bytes(因为int型态占4bytes),而*ptr1与**ptr2与***ptr3各差了8bytes(在64位元系统中64bits=8bytes)

**ptr3指向p记忆体位置:0x7fffffffdb0c
*ptr3指向ptr1的记忆体位置:0x7fffffffdb10
ptr3指向ptr2的记忆体位置:0x7fffffffdb18
取得ptr3记忆体位址:0x7fffffffdb20

<<:  [Python 爬虫这样学,一定是大拇指拉!] DAY17 - 爬虫事前准备

>>:  自动化 End-End 测试 Nightwatch.js 之踩雷笔记:关闭多视窗

追求JS小姊姊系列 Day4 -- 我知道很怪,但你不好奇字串姐变身会怎样吗(下)

前情提要 倒在路边的我,醒来发现人早已不见,只好回家过节。 (时间来到了,回到家中的午餐後) **我...

C# 入门之开篇

为什么选择 C# 正如简介里面介绍的一样,作为一名运维人员,你应该懂一门开发语言,那么那么多语言中,...

[NumPy] reshape(), resize()

Approches to transform the shape of ndarray numpy....

Day 29 AWS云端服务启用一条龙抓起来-CloudFormation

想要更便捷的来开启云端服务吗?CloudFormation帮我们搞定! 1. CloudFormat...

LeetCode解题 Day10

446. Arithmetic Slices II - Subsequence https://le...