(1)main函数内的变量不是全局变量,而是局部变量。
(2)只不过它的生命周期和全局变量一样长而已。
(3)全局变量一定是定义在函数外部的。
函数分类
从用户使用的角度看,函数有两种:
1、标准函数,即库函数。这是由系统提供的。
2、用户自定义的函数。可以解决用户的专门需要。
二、从函数的形式看,函数分两类:
1、无参函数。printstar和print_message就是无参函数。在调用无参函数时,主调函数并不将数据传送给被调用函数,一般用来执行指定的一组操作。
2、有参函数。在调用函数时,在主调函数和被调用函数之间有数据传递。也就是说,主调函数可以将数据传递给被调用函数使用,被调用函数中的数据也可以带回来供主调函数使用。
在C语言当中,一个程序,无论复杂或简单,总体上都是一个“函数”;这个函数就称为“main函数”,也就是“主函数”。比如有个“做菜”程序,那么“做菜”这个过程就是“主函数”。在主函数中,根据情况,你可能还需要调用“买菜,切菜,炒菜”等子函数。
main函数在程序中大多数是必须存在的,但是依然有例外情况,比如windows编程中可以编写一个动态链接库(dll)模块,这是其他windows程序可以使用的代码。
由于DLL模块不是独立的程序,因此不需要main函数。再比如,用于专业环境的程序-----如机器人中的控制芯片--可能不需要main函数。
main函数用法
C++中的main函数
C++继承了C语言的大部分特性,因此保留了“程序总是从main函数开始执行,且总是默认从main函数的return语句或结尾处结束运行”这一传统,但是要注意,C++中的main函数要想作为程序执行的出入口,必须写在全局(Global)范围,
不能写成某个结构体或某个类的成员。虽然main函数可以作为结构体或者类的成员函数,但相应地会失去作为程序出入口的功能。
C++中全局main函数的书写格式与C语言完全相同,功能也完全相同,且同一C++程序同样只能有一个全局main函数。
Java中的main函数
Java同样是以main函数作为程序执行出入口的,但Java作为“更纯洁”的面向对象语言,它的main函数与C/C++有很大的不同。
首先,返回值的概念淡化,在Java Application中main不允许返回值,因此int main是被禁止的,必须使用void main,int main仅限在JavaBean中使用。
其次,Java中所有的函数必须属于类,没有什么全局函数一说,因此main函数不能是全局成员,必须是某个类的成员。
第三,由于main函数变成了类的成员函数,因此要想直接被系统调用,还必须使用public static使其成为静态函数并具有公开权限。
第四,main函数的参数被简化,只需要提供字符串数组即可,不需要提供参数个数(这是由于Java的数组具有下标检查功能的原因)
Java Application中的main函数一般格式如下(类名可以自定义,但保存为Java源码时,主文件名必须与类名相同,否则可能无法运行)
public class MainDemo{
public static void main(String[]args){
//TODO:在此处写入主函数的内容
}
}
Java Applet的运行机制与Java Application完全不同,因此不需要main函数
C#中的main函数
C#中的main函数与Java大同小异,同样必须是类成员,同样使用字符串数组作唯一参数,同样是静态函数,同样的void main,
与之不同的是:main的首字母变成了大写,即"Main函数“,且是否限定为public级别已经无所谓了(默认没有public,但某些场合可能还是需要public)
另外,需要注意的是,C#中不再有”类名必须与主文件名同名“的限制,即使类名不和主文件名相同,程序照样可以运行。
C#应用程序中的main函数默认是这样的(注意main的首字母已是大写)
C#和C/C++、java不同的是C#不在拘泥于必须从main()函数开始执行,C#是属于事件触发。
class Program{
static void Main(string[]args){
//TODO:在此处写入主函数的内容
}
}
参考资料:
C++中main函数内的变量是全局的么?
(1)main函数内的变量不是全局变量,而是局部变量。(2)只不过它的生命周期和全局变量一样长而已。(3)全局变量一定是定义在函数外部的。函数分类 从用户使用的角度看,函数有两种:1、标准函数,即库函数。这是由系统提供的。2、用户自定义的函数。可以解决用户的专门需要。二、从函数的形式看,函...
C++中在头文件里定义的变量的作用范围是什么?
头文件中变量是全局变量,是你使用整个main函数过程中都可以调用的!变量的作用范围看位置,在函数体内的只能作用在该函数体内。程序设计序言书上都有
C++中,如何分辨我所定的变量是局部还是全局变量尼?
在某个函数内部定义的变量就是局部变量,这个变量只在某个函数的内部管用。除了这个函数这个变量就不存在了。全局变量是在函数外部定义的变量,他不属于哪个函数。属于整个源文件。
关于C++全局变量和局部变量的问题!!
局部变量:在一个函数内部定义的变量就是局部变量。作用范围:只局限在定义它的本函数体之内,即只有在该函数体内才能使用该变量,而在此函数之外是不能使用它们的。由于在不同函数体内定义的变量只在它所在的函数体内部有效,所以,不同函数体中可以定义相同名字的变量,但它们代表不同的对象,互不干扰。
全局变量和 局部变量的区别?
main函数中的同名变量就是全局变量。如果没有外部变量,main函数里的变量依然是局部变量。目的:增加函数间数据联系的渠道。由于同一文件中的所有函数都能引用全局变量的值,因此如果在一个函数中改变了全局变量的值,就能影响到其他函数中全局变量的值,相当于各个函数之间有直接的传递渠道。
C语言中,main函数内定义的变量在整个程序范围内都有效吗?
不是,对在其它函数内部定义的中转变量不起作用。如果要达到这个效果,可以使用宏定义,定义全局变量。 本回答由提问者推荐 举报| 答案纠错 | 评论 56 1 诡其辞 采纳率:36% 擅长: 互联网 C\/C++ 数学 系统软件 其他回答 貌似在子函数中不行,MAIN函数外部,也就是在INCLUDE之后定义的变量为全局变量,整个程序都...
全局变量和局部变量的区别有哪些?
在函数中使用全局变量,一般应作全局变量说明, 只有在函数内经过说明的全局变量才能使用。简单来说,在main() 函数以前声明的变量就是全局量。例如:#include<stdio.h>#include<stdlib.h>int i=22;float f=3.4;void main(){printf("%d %f",i,f);}C\/C++ 的域 由 花括号 括定;每对 { }...
c++ 变量的生命周期和内存的分配释放
一般情况下,C语言的存储数据内存分好几种:全局区 常量区 堆区 栈区 全局变量,是全局可见,程序结束后由操作系统收回。常量区,全局存在,程序结束后由操作系统收回。堆区,全局存在,程序员主动申请,主动释放,如果不释放,导致内存不足,于一个常驻进程内存泄漏,导致程序异常,无法继续申请内存,当...
c++中类的对象和成员变量的区别
C语言的变量可以分成两种级别:全局变量和局部变量 全局变量,在该变量之后定义的函数都可以访问 局部变量,只能在定义的函数中访问 而C++中多出了成员变量,成员变量通常是私有。成员变量依附于对象存在,有了对象,成员变量才有内存 而成员变量的可以被本类的所有成员函数直接访问的。
C++程序中的变量必须定义在主程序内部吗
当然不是了。主程序你是指main吧。 其实他就是一个函数,定义在其中的变量就是我们一般说的局部变量,和定义在其他函数内的变量是一个性质。如果你定义在main外面,那他就是一个全局变量。所有函数内都可以使用。且生命周期跟随程序运行的开始和结束。