1、局部变量可以定义在任何位置。之前的第二个例子中的定义方式,在这种编译器下是合法的。甚至部分支持C99全面的编译器,支持 for(int a=0; a100; a++)在for中定义变量。
创新互联自2013年起,先为甘孜州等服务建站,甘孜州等地企业,进行企业商务咨询服务。为甘孜州企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
2、C语言的C89规范,只支持在作用域起始部分定义变量。就是如果在执行语句的后面定义变量就是错的。例如:void func(void){ int a;//第一个定义,合法。a=1;//执行一个语句。
3、C语言规定:变量在使用之前必需说明。标准的做法在函数(或复合语句)中所有可执行语句之前是变量说明语句,也就是说,变量的说明需要在函数最前部。但是C++,只要求在变量使用前进行说明,具体位置无要求。
1、全局变量,可以在函数外任何位置定义。局部变量的合法定义位置,依赖于编译器遵循的C规范版本。仅支持C89规范的编译器,只支持在作用域起始部分定义变量。比如:void func(void){ int a=1;//函数体起始位置。
2、理论上是可以在使用之前的任何位置进行定义的,但是一般情况下是定义在第一个语句之前的。当然了,这个第一个语句是相对的,如内层函数中的局部变量或者是临时变量就是定义在内层函数的第一个语句之前的。
3、C语言的C89规范,只支持在作用域起始部分定义变量。就是如果在执行语句的后面定义变量就是错的。例如:void func(void){ int a;//第一个定义,合法。a=1;//执行一个语句。
4、变量的定义是不是可以出现在程序的任意一行?看你怎样书写程序。预处理行,不好加变量的定义 其它地方,只要能 写 { 。。} 的地方,就可以写变量的定义。
5、变量可以在函数的任何位置定义,其作用域为定义的那一行到最后 必须保证在使用变量之前对变量进行过定义。
在函数体之内的i和函数体之外的i是存放在两个内存位置的,在内部能够看到的是内部生存期的。建议你去看下变量在函数的生存期和内存中的位置,会有更深刻的理解。
定义在函数体里面的为局部变量,定义在函数体以外的为全局变量,局部变量的有效期只在该函数内有效,全局变量在整个程序中有效。
对于你提的问题,你要明白的是作用域,在不用的地方申明,那作用域也就不同,那么在main里边声明也就只能在main函数里起作用(函数内声明叫局部声明,反之在函数外部声明就叫全局声明)。
主函数都是用来调用子函数的,所以不需要在主函数内定义函数。那么当然是你的程序比较复杂,需要用到其他子函数才能实现,或者说可以简化程序时就需要在主函数外定义函数了啊。
把变量定义在主函数之外,即把变量设置为全局的。一般我们都把变量的定义放在函数中,因此变量的范围就是在本函数中。可是如果定义在所有函数的外面,这样所有的函数中,都可以使用本变量。你可以试一下这个程序。
因为C++本来就不允许直接在函数内定义函数,不过有几种变通方法。