1、sizeof(array)/sizeof(int)的含义

array是个数组

sizeof (array)就是这个数组所占的内存总量(字节数),

sizeof(int)就是单个所占的内存. 所以呢,

sizeof (array) / sizeof (int)就是array数组的元素的个数.

2、 sizeof(指针)和sizeof(数组名)

#include <iostream>
using namespace std;
template<class T>
int length(T& data)
{    return sizeof(data)/sizeof(data[0]);
}
int main()
{int data[]={2,45,7,8,9,23,4,6,7,8,0}; int data1[12]; int *data2 = new int[13]; char *data3 = new char[10]; cout<<length(data)<<" "<<sizeof(data[0])<<" "<<sizeof(data)<<endl; cout<<length(data1)<<" "<<sizeof(data1[0])<<" "<<sizeof(data1)<<endl; cout<<length(data2)<<" "<<sizeof(data2[0])<<" "<<sizeof(data2)<<endl; cout<<length(data3)<<" "<<sizeof(data3[0])<<" "<<sizeof(data3)<<endl; return 0;
}

提到了sizeof,那什么是sizeof?
首先看一下sizeof在msdn上的定义:
The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value of type size_t.
看到return这个字眼,是不是想到了函数?错了,sizeof不是一个函数,你见过给一个函数传参数,而不加括号的吗?sizeof可以,所以sizeof不是函数。网上有人说sizeof是一元操作符,但是我并不这么认为,因为sizeof更像一个特殊的宏,它是在编译阶段求值的。
结论:不要把sizeof当成函数,也不要看作一元操作符,把他当成一个特殊的编译预处理。
参考自https://blog.csdn.net/qq_33344148/article/details/81361325

C++/C中 sizeof(指针)和sizeof(数组名)的区别相关推荐

  1. c语言 数组指针,C语言数组名及指向数组指针的小结

    相信不少的C语言初学者都知道,数组名相当于指针,指向数组的首地址,而函数名相当于函数指针,指向函数的入口地址. 现在有这样一个问题,如果对数组名取地址,那得到的会是什么呢?很多人立刻会想到:给指针取地 ...

  2. CUDA中二级指针表示二级数组

    首先看下我们在CPU上是如何用二级指针表示二维数组的,其实就两点:一是用一级指针保存数据,二是用二级指针去按行索引数据位置.关于一级指针和二级指针的内存分配这里不讲了,注意数据类型就可以了. 代码做了 ...

  3. 数组名和取数组名的区别

    先来个简单的小案例 #include <stdio.h> #include <iostream>using namespace std;int main() {int a[10 ...

  4. c/C++计算int / int *数组的长度;sizeof(指针),sizeof(数组名)的区别

    1.计算int *数组长度: int arrayVlenth(float *p) {int len = 0;while (*p){p++;len++;}return len; } sizeof(指针) ...

  5. sizeof(指针)和sizeof(数组)的区别

    对指针利用sizeof得到的都是一个相同的值.在C语言中,指针只保存一个地址,所以任何类型的指针都占用相同的字节数. 对数组名利用sizeof得到的是整个数组占用的字节数. printf(" ...

  6. 类中数组成员变量怎么初始化,数组名与指针的区别

    使用STL标准模板库之后,编程时已经很少使用数组和指针,相反,多使用序列容器vector代替之. (std::vector<int>,构造函数接受const std::vector< ...

  7. c语言中二维数组中维数的计算,数组指针字符串C语言程序设计-第4章.ppt

    <数组指针字符串C语言程序设计-第4章.ppt>由会员分享,可在线阅读,更多相关<数组指针字符串C语言程序设计-第4章.ppt(132页珍藏版)>请在人人文库网上搜索. 1.程 ...

  8. sizeof求二维数组的大小

    #include<stdio.h> int main() {//二维数组int a[3][4] = {0};printf("%d\n",sizeof(a));//48 ...

  9. sizeof计算二维数组的大小

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string>int main() {int a[3] ...

最新文章

  1. CALayer的基本操作
  2. sublime Text3 设置多个浏览器预览
  3. “不厚道”的程序员:年后第一天上班就提辞职?
  4. oracle 11g-R2安装
  5. influxdb连续查询CQ和保留策略RP
  6. C++超详细STL常用算法总结
  7. 询问区间内出现次数最多的数出现的次数
  8. 网优5g前景_网优行业的吐槽,附吐槽记录
  9. 张宇高等数学强化阶段笔记并标记重点
  10. 数学与计算机相关的题目,数学与计算机毕业论文题目大全 数学与计算机毕业论文题目怎么定...
  11. yytext显示html并编辑,YYText的使用
  12. (超详细)nessus下载与安装
  13. 家中买的计算机配置,配置,教您买电脑主要看哪些配置
  14. Mimikatz各模块基本用法
  15. linux物联网项目,6个开源项目提升物联网开发效率
  16. 高德地图 定位失败,10: 定位服务启动失败 解决办法
  17. [算法] 手绘家谱的流程思考
  18. 笔记本电脑怎么写日记
  19. 【数论】狄利克雷卷积
  20. 【VTK+有限元后处理】实时剖切视图

热门文章

  1. 描述一下JAVA的加载过程_JVM源码分析之Java类的加载过程
  2. html 表格行排序,用客户端HTML表格排序对行进行分组
  3. php打印mysql sql_php的打印sql语句的方法
  4. 技校毕业是什么学历_初中毕业上技校学什么专业好
  5. 一个div 上下两行_web前端工程师如何理解 CSS 布局和块级格式化上下文
  6. 的mvc_简述PHP网站开发的MVC模式
  7. python 系统架构_Python之优化系统架构的方案
  8. json阅读器_Flutter小说阅读器系列一:使用Bloc模式获取起点小说关键字提示
  9. 计算机 电工学简明教程,电工学简明教程复习要点
  10. python怎么安装request_【python】如何安装requests