C语言学习笔记1(return用法)

来源:互联网 发布:网络黄金为什么没上市 编辑:程序博客网 时间:2024/04/29 10:49

1.return 的本意就是函数退出,不管是一般函数还是中断函数,翻译成汇编也就是 ret 或 reti 指令,到底应该执行ret还是reti那是编译器事。
2.break的作用是跳出所在的循环体。在switch段落中用于结束当前语句段的执行,跳出switch块。
   return的作用是结束所在的函数,跳到函数的结束部分,如果有返回值,就带回返回值。
   在优化编译条件下,如果编译器能够判断出某些语句是一定不能被执行的,就不会编译。
   在某些void函数中return语句不是非写不可的,如果没有return,编译器在编译的时候也会添加return操作。
    即使函数是被中断调用的,return也不会惹出麻烦的

3.return是跳出函数
就是释放堆栈中的内容。所有函数内建立的临时变量所占的地址都会没有。

break是跳出最近的一个循环

continue是继续下一个循环

例如
void fun1(void)
{
    int tmp = 0;
    for(; tmp < 20; tmp++)
    {
        i++;
        if(i > 10)
        {
            return;
         }
        
     }
}
这里面就是这个函数执行完,i应该等于11,前提是假设i为全局变量,从零开始

void fun2(void)
{
    int m = 0;
    int n = 0;

   for(;m < 5;m++)
    {
         while(n++ < 5)
         {
              if(i[m][n] <= 0)
              {
                    break;//进入这个if的时候,就意味着内层循环要结束了,进行下一个for循环,不会执行要下句话
               }
               i[m][n]--;
          }
        n = 0;
     }
}
前提是i为全局变量。
void fun3(void)
{
     int m = 0;
    int n = 0;

   for(;m < 5;m++)
    {
         while(n++ < 5)
         {
              if(i[m][n] <= 0)
              {
                    continue;//进入这个if的时候,就意味着本次循环要结束了,进行下一次的while循环
               }
               i[m][n]--;
          }
        n = 0;
     }

}
这个函数跟fun2基本一样,只是把break换成了continue。
其实fun3内的while函数的执行过程就是while(n++ < 5){if(i[m][n] > 0){i[m][n]--;}}.

例子举的有点不太恰当,呵呵。意思就这个意思。

其实最好不要乱使用GOTO语句。
另外回复12楼,C语言中也会出现越界的。那都是由于指针越界造成的。就是使用指针的时候一定要注意一下,不要乱指。空间用完就要赶快释放等等问题。

原创粉丝点击