范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

LinuxC编程实参和形参的转化及sizeof用法

  第一种情况#include    void param_test(int a) {   printf("addr(a) = %p ", &a); }  int main() {   int b = 10;      printf("%s - addr(b) = %p ", __func__, &b);   param_test(b);      return 0; }$ ./1 main - addr(b) = 0x7ffea26bbc6c addr(a) = 0x7ffea26bbc4c
  可以发现两次打印的地址不一样,实参和新参在内存中被分配了不同的地址。第二种情况void param_pointer_test(int *a)    {     printf("addr(a) = %p ", a);    }      int main()   {     int b = 10;           printf("%s - addr(b) = %p ", __func__, &b);     param_pointer_test(&b);        return 0;   }$ ./1 main - addr(b) = 0x7ffc9238b40c addr(a) = 0x7ffc9238b40c
  通过指针传递参数,可以发现形参与实参的地址就会一样,从而里面存储的数据也是一样的。sizeof() 用法
  1.定义
  sizeof是一个操作符。
  其作用是返回一个对象或类型所占的内存字节数。
  2.语法
  (1). sizeof(object); sizeof(对象)
  (2). sizeof(type_name); sizeof(类型)
  sizeof对对象求内存大小,最终都是转换为对象的数据类型进行求值。
  sizeof(表达式),值为表达式的最终结果的数据类型的大小。int a;   sizeof(int); //值为4   sizeof(a); //值为4,等价于sizeof(int)   sizeof a; //值为4   sizeof(4); //值为4,等价于sizeof(int),因为2的类型为int   sizeof(3 + 3.1415); //值为8,等价于sizeof(double),因为此表达式的结果的类型为double    char array[sizeof(int) * 10]; //OK,编译无误
  3.基本数据类型的sizeof
  这里的基本数据类型是指int, short, long, float, double这样的简单内置数据类型。
  由于它们的内存大小是和系统相关的,所以在不同的系统下取值可能不同。
  4.结构体的sizeof
  结构体的sizeof涉及到字节对齐问题。
  字节对齐的细节和编译器的实现有关,但一般需要满足以下三个准则:
  (1). 结构体变量的首地址能够被其最宽基本类型成员的大小所整除。
  (2). 结构体的每个成员相对于结构体首地址的偏移量都是成员大小的整数倍,如有需要,编译器会在成员之间加上填充字节。
  (3). 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要,编译器会在最末一个成员加上填充字节。
  空结构体(不含数据成员)的sizeof值为1struct S1   {       char a;       int b;   };   sizeof(S1); //值为8,字节对齐,在char之后会填充3个字节。      struct S2   {       int b;       char a;   };   sizeof(S2); //值为8,字节对齐,在char之后会填充3个字节。      struct S3   {   };   sizeof(S3); //值为1,空结构体也占内存
  5.联合体的sizeof
  结构体在内存组织上是顺序式的,联合体则是重叠式的,各成员共享一段内存,所以整个联合体的sizeof也就是每个成员sizeof的最大值。union u   {       int a;       float b;       double c;       char d;   };      sizeof(u); //值为8
  6.数组的sizeof
  数组的sizeof值等于数组所占用的内存字节数。
  (1). 当字符数组表示字符串时,其sizeof值将"/0"计算进去。
  (2). 当数组为形参时,其sizeof值相当于指针的sizeof值。char a[10];   char n[] = "abc";       printf("sizeof(a) = %d ", sizeof(a)); //数组,值为10      printf("sizeof(n) = %d ", sizeof(n)); //字符串数组,将"/0"计算进去,值为4void func(char a[3])   {       int c = sizeof(a);  //c = 4,因为这里a不在是数组类型,而是指针,相当于char *a。   }      void funcN(char b[])   {       int cN = sizeof(b); //cN = 4,理由同上。   }
  7.指针的sizeof
  指针是用来记录另一个对象的地址,所以指针的内存大小当然就等于计算机内部地址总线的宽度。
  在32位的计算机中,一个指针变量的返回值必定是4。
  指针变量的sizeof值与指针所指的对象没有任何关系。char *b = "helloworld";   char *c[10];   double *d;   int **e;   void (*pf)();        sizeof(b); //指针指向字符串,值为4   sizeof(*b); //指针指向字符,值为1   sizeof(d); //指针,值为4   sizeof(*d); //指针指向浮点数,值为8   sizeof(e); //指针指向指针,值为4   sizeof(c); //指针数组,值为40   sizeof(pf); //函数指针,值为4
  8.函数的sizeof
  sizeof也可以对一个函数调用求值,其结果是函数返回值类型的大小,函数并不会被调用。
  对函数求值的形式:sizeof(函数名(实参表))
  注意:
  (1). 不可以对返回值类型为空的函数求值
  (2). 不可以对函数名求值
  (3). 对有参数的函数,在用sizeof时,需要写上实参表#include         float FuncP(int a, float b)   {       return a + b;   }      int FuncNP()   {       return 3;   }      void Func()   {   }      int main()   {   printf("sizeof(FuncP(3, 0.4)) = %d ", sizeof(FuncP(3, 0.4))); //OK,值为4,sizeof(FuncP(3,0.4))相当于sizeof(float)   printf("sizeof(FuncNP()) = %d ", sizeof(FuncNP()) ); //OK,值为4,sizeof(FuncNP())相当于sizeof(int)   /*printf("sizeof(Func()) = %d ", sizeof(Func())); //error,sizeof不能对返回值为空类型的函数求值*/    /*printf("sizeof(FuncNP()) = %d ", sizeof(FuncNP())); //error,sizeof不能对函数名求值*/       return 0;   }

为什么显卡厂商有这么多,CPU厂商只有inter和amd?欢迎在点击右上角关注太平洋电脑网,更多有趣资讯等着您哦。其实显卡的厂商真的不多,就是三家AMDIntelNVIDIA三家的。当然我说的是我们普通买到的消费级的。目前CPU的,我们买芯片5G券商,后期会有行情吗?不说别的,就说券商吧,最好别整,心理战,形态理论战,K线理论等等理论技巧都已经玩到极致,全是反身性理论,反向指标,一旦买入,盈利很困难。举个例子,当阳线突破时你买进没毛病吧,可是第安兔兔4月安卓性价比手机榜单虽迟但到,出乎意料被子品牌屠榜在前几天,安兔兔终于把上个月的安卓性价比手机榜单公示出来了!价格区间选到了01999元,这个档位也是目前主流手机市场最畅销的存在。从榜单的机型来看,上榜的前十名手机出乎意料的都是隶千元机该怎么选?这个几个品牌值得一看,还有一种选择是真香千元机,顾名思义。就是价位在10001999间的手机,这个区间的新出机型比百元机配置要强,比旗舰机乃至于中端机存在些许不足。就有一种比上不足,比下有余的感觉。那么,我们该如何去选择苹果亮大招,iPhone11一夜沦为良心价,网友盼到了苹果在中国市场仍然保有庞大的用户群体,它的综合实力确实是毋庸置疑的,也掌握着高端机领域的话语权。是的,一直以来苹果都比较致力于为消费者提供极致体验的产品,所以在高端机型堆料上面还是Android12正式发布设计风格大变样,为用户隐私保驾护航就这两天,谷歌召开IO2021开发者大会,并且发布了全新的Android12系统,从资讯看到,新一代的手机操作系统设计风格大变样,操作的流畅度向苹果iOS操作系统靠拢,核心方面用户火星上到底是什么样子,人站在火星上什么感觉?火星一个去了就不想回来的星球,因为你根本回不来,如今的火星好与坏,似乎与我们并没有多大的关系,人类如今还没有技术可以实现火星移民,没有办法上去,也没有办法上去了火星返回地球。所以,海思麒麟芯片终于跌价了,现在入手正合适测评对象荣耀V30测评内容是否值得入手测评人奶茶的数码自从华为被打压后,搭载最新海思麒麟芯片的手机一直处于供不应求的局面,例如华为Mate40系列,从发布至今都需要加价才能购买。并为确保登月任务的宇航员在途中保持舒适,猎户座团队在飞船内部提供了哪些设备?美国宇航局(NASA)已计划在2024年之前将Artemis任务的宇航员送上月球并返回地球。多日行程意味着宇航员需要在旅行中保持舒适并适当休息。NASA的猎户座团队向外界展示了他们农历二十四节气是谁发明的?闰年又是谁研究出来的?农历二十四节气是谁发明的?闰年又是谁研究出来的?农历二十四节气是颛顼发明的。有人可能不认识颛顼这两个字,颛的意思是圆头胖脑,顼是饰品的意思,合起来就是头戴玉的人。颛顼(zhunx)3000以内后置拍照手机最强是哪款手机?感谢邀请3000以内后置拍照手机最强是哪款手机?题主问题的核心是3000元以内拍照手机最强的是哪款手机?我觉得这并没有确切的答案,因为每个厂商的优化算法不同,所以导致人们的看法也会
两个好消息!一个来自于华为,另一个来自于小米不知道大家还记不记得任正非曾经说过,华为就算没有了供应,但华为的专利费依旧可以养活华为,因为华为真的有这个实力。不过就目前来看,华为好像也并没有对西方国家收取任何费用,而是一心在科乌克兰央行宣布限制购买比特币以防止资本外逃智通财经APP获悉,周五,乌克兰央行宣布对比特币的购买进行限制,以防止资本外逃。报道指出,乌克兰国家银行禁止使用格里夫尼亚(乌克兰货币)购买比特币,并将每月使用外币购买比特币的上限实现连续八连冠1月份,比亚迪以92926辆的成绩再夺新能源乘用车销冠,实现连续八连冠。要论及其当下最热门的车,当属DMi超级混动系统加持的车型。秦PLUSDMi于2021年3月8日上市,提供纯电每个月月租41元,流量10000G的5G随身WIFI真的可以用吗?前几天,我偶然地从抖音上刷到一名主播介绍5G随身WIFI。不管你在青藏高原,还是在其它偏僻的地方,都能连上5G的信号我被她这句话深深震惊住了。刚开始我觉得不可能,因为从手机信号来看绿色转型稳步推进来源经济日报中国经济一季报亮点原标题绿色转型稳步推进今年一季度,我国绿色低碳产品消费增长较快,新能源汽车太阳能电池产量分别增长140。8和24。3。清洁能源消费占比继续提升,天然气聊聊华为matexs2,4月28日发布余承东近日在微博官宣,华为将在4月28日召开发布会,发布第5款折叠手机华为matexs2。从后缀可以看出这款手机会是华为matexs的后续发展型。我本想用改良升级四个字,但华为最近网商银行暂停支付宝提现,支付业务便捷性不受影响近日,网商银行一则公告引发广泛关注。公告称,2022年4月21日起,网商银行逐步暂停支付宝余额提现或转入网商银行类账户相关业务,同时网商银行类账户仅支持本人绑定银行账户转入。根据网奈飞流失及CNN破产流媒体还是投资好标的吗?似乎没有哪家流媒体服务能彻底拴住消费者的心!经过多年的高速增长,奈飞的新竞争对手给了消费者更多的选择,让投资者怀疑是否会有一个大赢家!奈飞公司连续第二个毁灭性的季度预测本周重创了该美股大跌!道指跌近千点谷歌跌4。15中新经纬4月23日电北京时间4月23日早间,美股三大指数大跌。道指跌2。82报33811。4点,跌近千点标普500指数跌2。77报4271。78点纳指跌2。55报12839。29点为什么美团骑手的收入越来越低,就是因为这个有电动第二个车就能跑,自由自在,想工作就工作的美团!为什么到了现在骑手的收入越来越低呢?第一个原因肯定是美团资本主义发作,眼红骑手的收入!拼命压低骑手的单价,以及疫情的原因导致骑手比亚迪复盘比亚迪002594全名比亚迪股份有限公司。新能源整车动力电池龙头,中国新能源汽车技术综合实力第一。于20110630上市。曾用简称无。位于广东省深圳市。发行价格18。00元,市盈率