
#include <stdio.h>
#include <malloc.h>
#include <memory.h>
int f(int* a,int l,int n,int i) /竖扒/a:源数组 l:a有效数字长度,n:插悉激入的数字,i,位置
{
int *b=(int*)malloc(sizeof(int)*(l-i-1))//临时数组b
memcpy(b,a+i,(l-i-1)*sizeof(int)) //把&a[i]开始的数据复制到b
a[i]=n
memcpy(a+i+1,b,(l-i-1)*sizeof(int))//复制回来
free(b)
return 0
}
int main()
{
int a[9]={1,2,3,4,5}
int i
f(a,6,8,2) //可以用各种办法获得第二个参数,或者直接就给数组的总长度
for(i=0i<6i++)
{
printf("余陆昌%d ",a[i])
}
return 0
}
#includeint
b
=
2
//
b是全局变量
int
fun(int
*k)
{
b
=
*k
+
b
//
全局变量b的值被更改
return(b)
//
返回改变后的全局变量的值
}
int
main()
{
int
a[10]
=
{1,2,3,4,5,6,7,8},i
for(i
=
2i
<
4i++)
{
//
用a[2](=
3)和a[3](=
4)两衡槐态次调用函数fun()
b
=
fun(&a[i])
+
b//
第一次调用前,b
=
2,调用后,b
=
5
+
5
=
10
|第明旦二次调用前,b
=
10,调用咐源后,b
=
14
+
14
=
28
printf("%d",b)
//
第一次输出10
|第二次输出28
}
printf("\n")
return
0
}
两者的区别只在于作用域和生存周期。main函数是一个进程的入口,此外,和别的函数无区别。1、main函数里定义的是局部变量,只是在main函数里有效。
2、如果程序里有多个函数,定义的全局变量在这些函数里都可以使用,而在main中定义的只能在main中使用,其他函数不可以直接调用。
3、题目中的两个程序的区别只在于程序一的a和s变量是全局变量,程序二的a和s变量是局部变量。
4、全局变量是程序的各个函数拿冲都可以调用的,而局部变量只在函数内部有效。
扩展资料:
全局变量是编程术语中的一种,源自于变量之分。
变量分为局部与全局,局部变量又可称之铅简为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。
全局变量既可以是消激歼某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。
局部变量(Local
variables)指在程序中只在特定过程或函数中可以访问的变量。局部变量是相对于全局变量而言的。在C++、C#、Ruby这些面向对象语言中,一般只使用局部变量。
面向对象编程是现在普遍采用的是软件开发方法,因此无需考虑是局部变量还是全局变量,说到变量,往往都是局部变量。
参考资料:百度百科-局部变量
参考资料:百度百科-全局变量
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)