永发信息网

C语言中,实参的隐含存储类型是? 形参的隐含存储类型是? A、auto B、static C、extern D、register

答案:6  悬赏:10  手机版
解决时间 2021-01-17 21:35
C语言中,实参的隐含存储类型是? 形参的隐含存储类型是? A、auto B、static C、extern D、register
最佳答案
标准C中,只规定了 函数 形参的隐含存储类型是 :
非register (参见C语言参考手册(5th) P65 表4-4).
不过个人觉得应该是 auto , 因为形参也是类似于局部变量,所以 形参的隐含存储类型是 A。

实参根本没有定义变量,它是值,所以它和调用函数处所用的参数值的存储类型相同,既有可能是 auto,也有可能是 static,等等, 比如

void f(int i) // i应该是 auto的
{
}
static int i1 = 0;
auto int i2 = 0;
extern int i3;
register int i4 = 1;

f( i1 ) ; //实参是 static
f( i2 ); //实参是auto
f( i3) //实参是 extern
f( i4); //实参是rigister
全部回答
我不会
B A
实参应该是static 因为不随形参变化而改变?
形参应该是extern吧 因为调用的函数可以在别的文件中,也需要重新声明?
static
答案都选A:上面几位胡说霸道。
不是static 形参存储类型只有两种可能,一是auto类型,而是register类型。我给你细细解说
auto 就是堆栈存储 而register的是cpu内部寄存器存储
具体函数的形参采用那种存储方法,这和函数的“调用规则(calling convention)”有关。
调用规则主要设计参数的传递,入栈顺序,寄存器传参,函数返回值的存储和清栈者,调用规则主要有 cdecl stdcall thiscall fastcall等等。栈是函数调用必需的数据结构。你可以在函数声明是注明函数的调用规则:如 int cdecl add (int a,int b) 。 注意函数有默认的调用规则,所以你再写程序时,没有必要注明调用规则。你此外还可以添加编译选项修改调用规则。
cdecl : (c/c++语言默认的调用规则):堆栈传参参数,因此是auto类型。
stdcall :有叫做pascal,WINAPI,这个调用规则出现在windows的API函数中。它也采用堆栈传递参数。
thiscall:类中的函数的调用方式:参数传递和编译器有关 Windows VC中 this指针用ECX寄存器存储,而unix gcc中 this用栈存储。其他参数也是用栈存储。
fastcall:用寄存器存储部分参数加快函数调用,其他参数用栈存储。
所以,没有隐含的存储类型,形参的存储类型和调用规则有关。但是如果真要学究般的考虑这个问题,则答案选A,因为C语言函数的默认调用方式是cdecl,它的参数传递只采用了栈,因此是auto(答案A)
而实参的存储类型可以是A,B,C,D四种,隐含的类型(也就是你在定义变量是,不指明存储类型)是auto(答案A)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
昌黎县靖安镇中学地址在什么地方,我要处理点
马景涛的电视剧 是拿着一把刀--那把刀会自己
广东车之轩汽车音响地址在哪,我要去那里办事
老婆跟情人同时掉进河里你会先救谁?
冬天小乌龟只是喂食时间加热可不可以?平时不
什么时间段申购新股中签率最高?
黑马和白马的 童话作文
如何查看linux发行版版本信息
15岁的女生该带少女文胸吗
各位用的都是什么耳机打cs
右脚外撇伤了怎么办
请将1-9填入下列图中,使之成立
方太EMD6T油烟机怎么样,究竟质量如何,求助
根据运算定律填空.①85×a=a×________②49+
小红家与姥栳家相距16o千米,她乘坐汽车从自己
推荐资讯
食物在高温的情况下会产生嘌呤吗
灰尘怎么处理
C#超时死锁ContextSwitchDeadlock问题。
14减六又七分之一再加六又七分之一等于多少
求解答过程:阅读下面这则古文,完
碎琥珀和煤渣混在一起要怎样分开 ??
汽车被刮坏可以要求卖车降价的损失吗
怎么在word2007里给汉字上加拼音
哪里还能买到诺基亚5300
有关张载的古诗词
从十方界到石坪敬老院怎么坐公交车,最快需要
请问我这仓鼠是什么品种的?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?