`
wsql
  • 浏览: 11782614 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

函数返回值—返回局部变量

 
阅读更多

看看下面的程序的输出:<wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">#include &lt;stdio.h&gt;</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">char *returnStr()</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">{</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> char *p="hello world!";</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> return p;</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">}</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">int main()</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">{</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> char *str;</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> str=returnStr();</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> printf("%s\n", str);</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> return 0;</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">}</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">这个没有任何问题,因为"hello world!"是一个字符串常量,存放在静态数据区,把该字符串常量存放的静态数据区的首地址赋值给了指针,所以returnStr函数退出时,该该字符串常量所在内存不会被回收,故能够通过指针顺利无误的访问。</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">但是,下面的就有问题:</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">#include &lt;stdio.h&gt;</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">char *returnStr()</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">{</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> char p[]="hello world!";</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> return p;</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">}</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">int main()</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">{</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> char *str;</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> str=returnStr();</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> printf("%s\n", str);</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> return 0;</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">}</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"></span></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

"hello world!"是一个字符串常量,存放在静态数据区,没错,但是把一个字符串常量赋值给了一个局部变量(char []型数组),该局部变量存放在栈中,这样就有两块内容一样的内存,这是与前着最本质的区别,当returnStr函数退出时,栈要清空,局部变量的内存也被清空了,所以这时的函数返回的是一个已被释放的内存地址,所以打印出来的是乱码。<wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">如果函数的返回值非要是一个局部变量的地址,那么该局部变量一定要申明为static类型。如下:</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">#include &lt;stdio.h&gt;</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">char *returnStr()</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">{</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> static char p[]="hello world!";</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> return p;</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">}</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">int main()</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">{</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> char *str;</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> str=returnStr();</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> printf("%s\n", str);</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> return 0;</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">}</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">这个问题可以通过下面的一个例子来更好的说明:</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">#include &lt;stdio.h&gt;</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">//返回的是局部变量的地址,该地址位于动态数据区,栈里</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">char *s1()</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">{</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> char p[]="Hello world!";</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> printf("in s1 p=%p\n", p);</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> printf("in s1: string's address: %p\n", &amp;("Hello world!"));</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> return p;</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">}</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">//返回的是字符串常量的地址,该地址位于静态数据区</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">char *s2()</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">{</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> char *q="Hello world!";</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> printf("in s2 q=%p\n", q);</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> printf("in s2: string's address: %p\n", &amp;("Hello world!"));</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> return q;</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">}</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">//返回的是静态局部变量的地址,该地址位于静态数据区</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">char *s3()</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">{</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> static char r[]="Hello world!";</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> printf("in s3 r=%p\n", r);</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> printf("in s3: string's address: %p\n", &amp;("Hello world!"));</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> return r;</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">}</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">int main()</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">{</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> char *t1, *t2, *t3;</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> t1=s1();</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> t2=s2();</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> t3=s3();</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> printf("in main:");</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> printf("p=%p, q=%p, r=%p\n", t1, t2, t3);</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> printf("%s\n", t1);</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> printf("%s\n", t2);</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> printf("%s\n", t3);</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"> return 0;</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">}</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em"></span></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

运行输出结果:<wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">in s1 p=0xbff92efb</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">in s1: string's address: 0x80486ac</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">in s2 q=0x80486ac</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">in s2: string's address: 0x80486ac</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">in s3 r=0x804998c</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">in s3: string</span><wbr style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><br style="margin:0px; padding:0px"><span style="font-family:新宋体; margin:0px; padding:0px; line-height:1.3em">这个结果正好应证了上面解释,同时,还可是得出一个结论:字符串常量,之所以称之为常量,因为它可一看作是一个没有命名的字符串且为常量,存放在静态数据区。这里说的静态数据区,是相对于堆、栈等动态数据区而言的。静态数据区存放的是全局变量和静态变量,从这一点上来说,字符串常量又可以称之为一个无名的静态变量,因为"Hello world!"这个字符串在函数 s1和s2 中都引用了,但在内存中却只有一份拷贝,这与静态变量性质相当神似。</span></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

char *p = "abcdefg";//静态存储区

char p[] = "abcdefg"; // p本身是数组名了,数组里放的字符串,是局部变量,内容是原来的静态区域内容的拷贝!因此返回p实际上返回的局部变量地址而不是静态存储区地址,和上面不同!

分享到:
评论

相关推荐

    详解C语言函数返回值解析

    详解C语言函数返回值解析 程序一: int main() { int *p; int i; int*fun(void); p=fun(); for(i=0;i&lt;3;i++) { printf(%d\n,*p); p++; } return 0; }; int* fun(void) { static int str[]={1,2,3,4...

    三、第一阶段-Python函数

    函数的返回值4.1 返回值说明4.2 带有返回值的函数4.3 保存函数的返回值4.4 返回多个返回值5.递归函数6.局部变量6.1 作用范围6.2 局部变量7.全局变量7.1 全局变量简介7.2 全局变量和局部变量名字相同的问题7.3 修改...

    python基础2day05.txt

    函数可以作为返回值返回 函数的嵌套定义 python 作用域 局部作用域 外部嵌套函数作用域 模块级的作用域(全局作用域) 内建模块的作用域 global 语句 声明 nonlocal 语句 lambda 表达式(用来创建匿名函数)...

    Python入门之Python函数

    Python入门之Python函数全文框架前言函数的定义和调用函数的参数位置参数默认参数关键字参数特殊参数小结函数的返回值返回 None返回一个值返回多个值多个 return 语句函数的文档说明局部变量和全局变量函数标注编程...

    checklist 学习资料 学习资料

    11 局部变量作用域 是否存在返回局部变量指针 局部变量指针是否赋值给全局指针 12 函数参数调用 入参和定义是否一致。特别关注多重指针和单重指针的相互转换 参数类型是否一致,防止入参数据被截短 13 入参安全检查 ...

    20160707_试验三V3.2_13邵温财 1

    2.函数返回值放在什么地方 3.局部变量什么时候分配 4.参数的存储空间什么时候分配,什么时候释放 5.函数f3在调用与返回方式上与f1,f2有何不同

    C语言程序设计标准教程

     此类函数被调用执行完后将向调用者返回一个执行结果, 称为函数返回值。如数学函数即属于此类函数。 由用户定义的这种要返回函数值的函数,必须在函数定义和函数说明中明确返回值的类型。 (2)无返回值函数  此类...

    C语言程序内存布局

    C语言通过栈来维护函数调用上下文,也就是说C中的函数、函数参数列表、局部变量、函数返回值都保存在栈内存中,在完成函数调用之后栈帧随即销毁,至于具体的压栈顺序和上下文维护工作由谁来完成,则取决于函数的调用...

    javascript学习笔记(四)function函数部分

    您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。 函数的调用方式 1、普通调用:functionName(实际参数…) 2、通过指向函数的变量去调用:  var myVar = 函数名; myVar...

    python闭包

    1.一等函数 在Python中,函数是一等公民(first class citizen)。 函数像其他类型的数据一样,...外函数把内函数作为返回值返回,并且内函数中使用了外函数的局部变量,这样的情况下被返回的内函数被称为闭包(clos

    了解PHP的返回引用和局部静态变量

    从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用操作符 & :  复制代码 代码如下: &lt;?php  function &returns_reference()  {   $someref = 0;   return $someref;  }    $...

    经典C/C++面试题目大汇总(全附答案).doc

    注意事项: (1)不能返回局部变量的引用。这条可以参照Effective C++[1]的Item 31。主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成为了"无所指"的引用,程序会进入未知状态。 (2)不能...

    Go语言学习笔记 – 第五章 函数(The Go Programming Language)

    返回值也可以像形式参数一样被命名,并被声明成一个局部变量。 如果形参或返回值有相同的类型,参数类型可以省略 func f(i, j, k int, s, t string) { /* ... */ } func f(i int, j int, k int, s string, t string)...

    C函数之memcpy()函数用法

     1.source和destin所指内存区域不能重叠,函数返回指向destin的指针。  2.与strcpy相比,memcpy并不是遇到''结束,而是一定会拷贝完n个字节。  memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型

    python globals函数

    在前面我们讲解了python内置函数locals,内置函数locals直接以字典的形式返回当前位置的所有局部变量,今天需要介绍的是另外一个python内置函数globals,该函数直接以字典的形式返回当前位置的所有全局变量 ...

    python闭包与引用以及需要注意的陷阱

    关于闭包, 很多blog中都这样解释 :对于一个嵌套定义的函数,外层的函数的返回值是内层函数,而在内层函数中又引用了外层函数的局部变量,在外层函数执行后,其局部变量并非被回收,而会同返回的内层函数一同存在,...

    JAVA资格认证:SCJP310-055中文

    声明、初始化并使用基本类型、数组、枚举、静态对象、成员变量和局部变量,使用合法的变量标识符。  定义方法和静态方法,使用符合JavaBean命名规范的方法名。  定义并使用可变参数。正确重写和重载方法并识别...

    C++初学者指南(原版)

    您还将了解传递参数、返回值、局部变量和全局变量、函数原型和递归。 第 6 章:进一步了解函数 此模块继续探讨函数。它讨论了 C++ 的三个最重要的函数相关主题:引用、函数重载和默认参数。 第 7 章:更多数据类型和...

    C语言程序设计(谭浩强)第三版

     7.9.2局部变量的存储类别  7.9.3全局变量的存储类别  7.9.4存储类别小结  7.10关于变量的声明和定义  7.11内部函数和外部函数  7.11.1内部函数  7.11.2外部函数  习题 第8章;善于利用指针 8.1指针是什么  ...

Global site tag (gtag.js) - Google Analytics