c语言中主函数中定义的变量,调用函数里还需要再定义吗?

烟台大悦城 2024-12-01 14:57:46
最佳回答
在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:变量的声明有两种情况:(1) 一种是需要建立存储空间的(定义、声明)。例如:int a在声明的时候就已经建立了存储空间。 (2) 另一种是不需要建立存储空间的(声明)。例如:extern int a其中变量a是在别的文件中定义的。前者是"定义性声明(defining declaration)"或者称为"定义(definition)",而后者是"引用性声明(referncing declaration)"。从广义的角度来讲声明中包含着定义,但是并非所有的声明都是定义,例如:int a它既是声明,同时又是定义。然而对于extern a来讲它只是声明不是定义。一般的情况下我们常常这样叙述,把建立空间的声明称之为"定义",而把不需要建立存储空间称之为"声明"。很明显我们在这里指的声明是范围比较窄的,也就是说非定义性质的声明。例如:在主函数中 int main(){extern int a; //这是个声明而不是定义,声明a是一个已经定义了的外部变量//注意:声明外部变量时可以把变量类型去掉如:extern a;dosth(); //执行函数}int a; //是定义,定义了a为整型的外部变量(全局变量) 外部变量(全局变量)的"定义"与外部变量的"声明"是不相同的,外部变量的定义只能有一次, 它的位置是在所有函数之外,而同一个文件中的外部变量声明可以是多次的,它可以在函数之内(哪个函数要用就在那个函数中声明)也可以在函数之外(在外部变 量的定义点之前)。系统会根据外部变量的定义(而不是根据外部变量的声明)分配存储空间的。对于外部变量来讲,初始化只能是在"定义"中进行,而不是在" 声明"中。所谓的"声明",其作用,是声明该变量是一个已在后面定义过的外部变量,仅仅是在为了"提前"引用该变量而作的"声明"而已。extern只作 声明,不作定义。 用static来声明一个变量的作用有二:(1) 对于局部变量用static声明,则是为该变量分配的空间在整个程序的执行期内都始终存在(2) 外部变量用static来声明,则该变量的作用只限于本文件模块 20210311
汇率兑换计算器

类似问答
  • 用导数的定义求反正切函数的导数,
    • 2024-12-01 07:23:16
    • 提问者: 未知
    教材上反正切函数的导数是用反函数的方法证明的,没有给出用导数的定义来求解的过程. 证明:设 y=atan(x);y+δy=atan(x+δx),则:atan’(x)=(δx->0)lim[atan(x+δx)– ...
  • 在c语言中有那些函数名?
    • 2024-12-01 10:16:49
    • 提问者: 未知
    仅仅为了获取函数名,就在函数体中嵌入硬编码的字符串,这种方法单调乏味还易导致错误,不如看一下怎样使用新的c99特性,在程序运行时获取函数名吧.对象反射库、调试工具及代码分析器,经常会需要在运行时访问函数的名称,直到不久前,唯一能完成此项任务并且可移植的方法,是手工在函数体内嵌入一个带有该函数名的硬编码字符串,不必说,这种方法非常单调无奇,并且容易导致错误。本文将要演示怎样使用新的c99特性,在运行...
  • matlab中怎么定义一个函数
    • 2024-12-01 10:52:26
    • 提问者: 未知
    自定义函数的途径:m文件函数(m file function)在线函数(inline function)匿名函数(anonymous function)1.m文件函数范function c=myadd(a,b)%这里可以写函数的使用说明,前面以%开头%在工作区中,help myadd将显示此处的说明c=a+b;%end %非必须的第一行function告诉matlab这是一个函数,a,b是输入,c...
  • c语言中的子函数和主函数有什么联系啊?它们是怎么编写的?
    • 2024-12-01 22:28:28
    • 提问者: 未知
    在c语言中主函数调用子函数,子函数被主函数调用,636f707962616964757a686964616f31333431356632这就是它们之间的联系。编写函数主要有以下步骤,首先对函数进行定义,语法格式为: 类型说明符 函数名(含类型说明的形式参数表) { 语句序列 } 形式参数的作用是实现主函数和被调函数之间的...
  • 投机性货币需求的函数变量
    • 2024-12-01 07:55:05
    • 提问者: 未知
    展开全部“货币7a64e59b9ee7ad9431333361303063失踪”之谜 为了解开“货币失踪”之谜,国际货币经济学界一方面是在计量技术上做文章,如构建部分调整模型和纠错模型,进行哑变量设计,采用共积分等;在函数形式上从线性到对数线性和半对数线性,或转而采用非线性函数或具有随机系数的非线性函数,或...
  • c语言中有没有求绝对值的函数啊?谢谢!
    • 2024-12-01 13:16:17
    • 提问者: 未知
    有。2113c语言求绝对值的函数为5261abs(x)与fbs(x),abs(x)包含于stdlib.h,且两者均包含于math头文件之4102下。1、abs(x)函数 格式:int abs(int i);作用:求整1653型数的绝对值 例子: include include include main() { int a=1,b=-2;printf("%d的绝对值是%d,%d的绝对值是%d\n",...
  • c++中round函数怎么用
    • 2024-12-01 00:01:02
    • 提问者: 未知
    c++中没有直接的round函数,需要自己建立,可以...扩展资料:round函数的详细介绍在 vb,vbscript,c#,j#,t-sql 中 round 函数都是采用 banker's rounding(银行家舍入)算法.
  • 在一段程序中,延时函数声明和延时函数定义有没有固定的书写位置?
    • 2024-12-01 20:12:30
    • 提问者: 未知
    声明一般写在#include与main()之间(原则上,只要在调用的前面) 而定义只要在声明后面就可以了(任意位置,只在不在别的函数里面) 没有特别的规定
  • 怎么定义求fibonacc(斐波那契数列)数列第n项的数值的函数
    • 2024-12-01 14:44:59
    • 提问者: 未知
    #includefib(int n){if(n==0) return(0);else if(n==1) return(1);elsereturn(fib(n-1)+fib(n-2));}main(){int n,s;scanf("%d",&n);s=fib(n);printf("%d\n",s);}
  • excel中有哪些好用的公式、自定义函数、宏和技巧?
    • 2024-12-01 12:01:09
    • 提问者: 未知
    关注公众号「精进excel」,任意点开三篇,没有你想要的,算我耍**!25 人赞同了该回答 这是我在线课程讲的一节课,主要讲解了职场中常用的十二个函数,同时也涉及了一...
汇率兑换计算器

热门推荐
热门问答
最新问答
推荐问答
新手帮助
常见问题
房贷计算器-九子财经 | 备案号: 桂ICP备19010581号-1 商务联系 企鹅:2790-680461

特别声明:本网为公益网站,人人都可发布,所有内容为会员自行上传发布",本站不承担任何法律责任,如内容有该作者著作权或违规内容,请联系我们清空删除。