重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
如果按旧的c语言标准(c89)确实是,函数内部使用的变量必须定义在开头
我们提供的服务有:成都做网站、成都网站设计、成都外贸网站建设、微信公众号开发、网站优化、网站认证、南岔ssl等。为近千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的南岔网站制作公司
c99标准支持随处定义变量,因此不受限制,不过由于支持新标准的c编译器太少,为了保持程序的可移植性,还是按旧标准把局部变量定义在每个函数的开头好了
在函数体内声明的变量在默认情况下都是auto存储类型
在代码块之间传递信息的一种方法就是使用外部变量。当一个变量在函数的外部被声明时,安的存储空间是永久分配的,安人存储类型是extren.外部变量的声明看上去和函数或代码块内部所声明的变量一样。外部变量对于它之后的所有函数都有效。在代码块或函数后,外部变量仍然存在。
static的基本用途是允许一个局部变量在重新进入代码块时能够保持原来的值。这和自动变量形成了鲜明的对比,自动变量在代码块时会被销毁,再次进入这个代码块时,它必须重新进行初始化。
register存储类型告诉编译器相关的变量应该改量存储在高速度的寄存器中。使用register存储类型的目的一般是为了提高执行速度,但是,register声明只是向编译器所提出的“建议”,并非强制要求。
#include stdio.h
void exe(int** p, int** q);
void main()
{
int *p, *q, a, b;
scanf("%d %d", a, b);
p = a;
q = b;
if (a b)
{
exe(p, q);
}
printf("a=%d,b=%d\n", a, b);
printf("max=%d,min=%d\n", *p, *q);
}
void exe(int** p, int** q)
{
int* t;
t = *p;
*p = *q;
*q = t;
}
是的。
在函数内部定义的变量,称之为局部变量。
局部变量的作用域,也就是有用的范围,是从定义位置开始,到所在大括号结束。
如
int func()
{
int i = 10; //i的定义位置。
if(i == 1)
{
int j = 100; // j 的定义位置。
//some codes
}//j所在大括号结束,j的作用域结束。
//some codes
}//函数结束,i的作用域结束。
C语言中主函数中定义的变量只能在主函数中使用,所以你还得再定义一个变量。
当然,捏可以把主函数中定义的这个变量传递给被调用的函数作为参数。
例如
void fun(int x)
{
}
main()
{
int num=9;
fun(9);
}
但是如果你要在被调用函数中使用这个变量例如
fun()
{
num++;
}
像这样,就是错的,编译器会报错,main中定义的变量是局部变量,只能在main中使用。
你可以在main外部定义一个变量,这样在被调用函数中也就可以使用了。
这样吧,我们举个例子,假如写一个程序就是炒一道菜,
炒菜呢需要材料,变量呢就是你的材料,一个个的材料都放在碗里等着你用。
开始洗菜、切菜、炒菜,这一个个的过程就是函数。
最后材料和过程就结合成一道菜,这整个做菜的流程就是一个程序。