#include
x=f1(2)+f1(2) y=f2(2)+f2(2) int f1(n) { int i=1; n+=i; return n; } int f2(n) { static int i=1; n+=i; return n; } x=?,y=?
假设有一函数,定义如下: char *func() { char array[10]; memset(array,0,sizeof(array)); strcpy(array,"12"); return array; } 在另外一个函数里有下面的语句: char array[100]; memset(array,0,sizeof(array)); strcpy(array,func()); 请问在strcpy时func的局部数组变量会被释放吗?
[CODE] #!/usr/local/bin/perl use vars qw($gloabl_1 $gloabl_2); $gloabl_1 = 1000; for ( my $gloabl_1 = 0; $gloabl_1 < 10; $gloabl_1++) { print $gloabl_1; #如果想将局部变量my $gloabl_1加上全局变量$gloabl_1如何办? } print "\n=======\n"; print $gloabl_1; [/CODE]
char *test() { char ss[10]={0}; return ss; } 提示:warning: function returns address of local variable 如果改成 char *ss=(char *)malloc(10); 就可以执行了。 请问这是为什么啊?char *ss不也算是局部变量么,怎么它可以作为返回对象啊?
[code] char *test(){ char *tmp="test";//tmp也是局部变量,怎么可以返回?它跟char tmp2[]="test2"的区别在那里? return tmp; } [/code]
一个可执行程序中,.data段存放初始化的数据,.bss段存放未初始化的数据。
可是局部变量却直接以指令的形式写到了代码中:
这个简单的程序:
[quote]#include