sizeof与数组和指针

1.sizeof()的作用是输出操作数或对象占用的空间量(字节数)。
2.sizeof是运算符,并不是函数,()并不是必须的,他只是表示优先级。
3.当sizeof的对象是表达式时,求的结果是表达式的返回类型的空间占用量,但并不计算表达式的值。
4.当数组为函数输入时,会自动转换为指针。


#include<iostream>
#include<string>
using namespace std;
int main()
{char a[] = "abcd";//栈或者静态存储区上分配内存char *b = "abcd";//任意类型的内存块char c[] = "abcd";char *d = "abcd";cout << sizeof(a) << endl;//5cout << sizeof(b) << endl;//4cout << sizeof(*a) << endl;//1cout << sizeof(*b) << endl;//1cout << sizeof(a + 1) << endl;//4cout << sizeof(*(a + 1)) << endl;//1cout << sizeof(b + 1) << endl;//4cout << sizeof(*(b + 1)) << endl;//1cout << boolalpha << (a == b) << endl;//falsecout << (a == c) << endl;//falsecout << (b == d) << endl;//truesystem("pause");return 0;
}

sizeof(a),输出的是数组a的空间占用量,即为4个字符和‘\0’,为5个字节.

sizeof(b),输出的是指针b的空间占用量,也就是存储‘abcd’的地址的大小,一般指针大小为4个字节。
sizeof(*a),指针指向数组a的首元素,即为一个字节。
sizeof(*b),指针b的指向的首元素,即为一个字节。
sizeof(a+1),将a视为指针,a的下一地址,但输出的也仍是指针,4个字节。
sizeof(*(a+1)),a视为指针指向的下一个元素,即为一个字节。
a==c,a,c同为数组,数组存储在栈或者静态存储区上,所以他们都有自己的内存分配空间,即a!=c,false.
b==d,b,d都是指针,指针存储在任意的内存块中,两个指针实际上是指向了同一块地址,所以b==d,true.

sizeof与数组和指针相关推荐

  1. C/C++:sizeof数组与指针

    C/C++:sizeof数组与指针 在C/C++中使用sizeof对数组和指针所得的结果是不一样的. [例1] #include <stdio.h> #include <stdlib ...

  2. 计算结构体、数组、指针的sizeof

    1. 结构体的sizeof 题目: sturct aa { in num; char name[10]; }; struct bb { int a; float b; struct aa c; }; ...

  3. 面试准备每日五题:C++(六)——CC++、staticconstextern、sizeof strlen、指针引用、数组指针指针数组函数指针

    文章目录 一.C和C++的区别是什么? 二.关键字static.const.extern作用 三.sizeof和strlen的区别 四.指针和引用的区别 五 .指针数组.数组指针.函数指针 一.C和C ...

  4. 数组和指针(sizeof两者的关系)

    <c和指针>还有对其他博客的参考 数组很常见,int b[4]中 b[4]是整形,b类型是什么呢? 正常思考方式,b应该是表示整个数组,但是我们使用数组名字b的过程中,几乎所有都是一个指针 ...

  5. c++ char数组初始化_c专题指针数组与指针的关联

    ----在今天开始写文章之前,让我不由的想起高中里面学的一篇文章中一段话语,是荀子写的<劝学>:积土成山,风雨兴焉:积水成渊,蛟龙生焉:积善成德,而神明自得,圣心备焉.故不积跬步,无以至千 ...

  6. C指针4:数组指针(指向数组的指针)

    先明确两个概念:(1和2是两个完全不一样的东西) 1.数组指针:如果一个指针指向了数组(该数组就是普通定义的数组),我们就称它为数组指针(Array Pointer).(1强调的是指针) 2.指针数组 ...

  7. C++知识点6——数组与指针初步

    指针和数组 编译器在编译的时候会将数组名转化为对应类型的指针 数组注意点 不能直接用一个数组初始化另一个数组,也不能用一个数组给另一个数组赋值 void arrayassigntest() {int ...

  8. C语言复习篇之数组与指针

    C语言复习篇之数组与指针 学习了一段时间的嵌入式linux了,学习中有很多的东西需要总结,有经验有教训,我觉得把他写下来会更好,就当做是一种笔记的形式,记录学习中的点点滴滴,不仅仅自己可以经常复习,也 ...

  9. 什么是指针?什么是数组?指针和数组的关系?

    什么是指针?什么是数组?指针和数组的关系? 形象地讲,我们可以把计算机的内存看作一条长街上的一排房屋,每个房间都可以容纳数据并通过一个房号来表识.而表示每个房间房号的值我们可以称为地址.或许这样的比喻 ...

最新文章

  1. 3D曲面重建之移动最小二乘法
  2. Swift进阶学习笔记
  3. Python应用实战案例-深入浅出Python随机森林预测实战(附源码)
  4. jsonutil java_Java实现的JSONUtil工具类与用法示例
  5. 数据结构---邻接矩阵的BFS
  6. python两个for循环为什么第二个循环里值不变_两个for循环,第二个只在第一个迭代python上执行...
  7. S5PV210裸机之重定位
  8. Codeforces.802C.Heidi and Library (hard) (费用流zkw)
  9. 迅雷使用积分制的真正作用和目的   [揭密迅雷]
  10. excel甘特图模板_最简单的Excel甘特图制作方法,只用一条公式,项目进度一目了然...
  11. python自动化_python自动化办公?学这些就够用了
  12. ZOJ 2859 二维RMQ(模板)
  13. 【基础教程】基于matlab图像处理图像分割【含Matlab源码 191期】
  14. 字子序列中英翻译模型(五笔特征)
  15. 2021年全球及中国AMOLED行业发展现状、竞争格局及未来发展趋势分析,柔性AMOLED面板将占领市场「图」
  16. E/art﹕Failed sending reply to debugger: Broken pipe的解决方法
  17. MySQL查询不同年份母亲节_不同国家的母亲节发展故事
  18. windows10虚拟机下载
  19. 芝诺数解|「五」千言万语,都在锅里——重庆火锅
  20. android穿山甲主题冲突,Flutter 接头条穿山甲广告 Android 总述篇

热门文章

  1. storm100有害吗 vapor_高性价比电子烟油十大品牌推荐排行榜 2018新版
  2. java filetime_java-FileTime转换为字符串
  3. MATLAB仿真-抽取滤波
  4. N/A,NG的全称是什么?
  5. Opencv 给灰度图上颜色
  6. 基于微信小程序的校园活动平台的设计与实现
  7. 用 OpenCV 去除图片中的水印,骚操作!
  8. 如何关闭android省流量,安卓手机怎么省流量 安卓手机省流量的方法
  9. FFmpeg/FFplay/常用命令
  10. 仙儿都不晓得是为什么