通俗易懂C语言--函数与控制流

 函数

void swap(void){
  int a=1;
  printf("%d\n",a);
}

int swap(void){
   int a=1,b;
    b=a;
   printf("%d\n",a);
   return b;
}

看一下上述的代码,写了两个函数,理解一点,有返回就要在函数的开始注明返回的类型,如果没有返回值,直接写一个void就行。

另外有关函数的关注一下static和const这两个关键字

const修饰的是函数的返回值,比如

const int swap()

 主要作用有以下几点:

1、预编译指令只是对值进行简单的替换,不能进行类型检查

2、可以保护被修饰的东西,防止意外修改,增强程序的健壮性

3、编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。

#include <stdio.h>

static void swap(){

   static int a=1;
  printf("%d\n",a);
  a++;
}

int main(){
  swap();
  swap();
   return 0;
}

 输出结果为1,2

第一个最后a++的结果a=2,静态变量第一次初始化后,第二次就不用再进行初始化了,而是直接使用第一次结果的值。

控制流

if-else和switch语句略过,后面的很容易就能理解的都如此,略过处理,着重讲一下goto语句,do-while语句,while循环for循环以及continue与break的区别

goto

先看goto语句吧,没事尽量少用,毕竟跳来跳去的到时候有问题了很难找到问题出在哪,我说的少用是用几个就行,而不是不用,用十多个就有点懵了。怎么用:goto XXX;然后在函数某个地方写上这个标记,XXX:语句,这就OK了。

do-while

看名字就能明白,先运行语句,再判断

#include <stdio.h>

int main(){
  int a=1;
  do{
	  a++;
  }while(a<9);
  printf("%d\n",a);
   return 0;
}

一个简单的程序,判断a是否小于9,如果是的话继续循行do中的语句

while

#include <stdio.h>

int main(){
  int a=1;
  while(a<9){
      a++;
  }
  printf("%d\n",a);
   return 0;
}

for

#include <stdio.h>

int main(){
  int i,j=0;
 for(i=0;i<9;i++){
      j++;
  }
  printf("%d\n",j);
   return 0;
}

上面的循环很简单,本来没必要写,但是涉及到重要的两个循环控制break以及continue语句,break,表示中断直接跳出循环,continue表示的是跳过本次,但是循环依然继续,看一个程序

#include <stdio.h>

int main(){
  int i,j=0;
 for(i=0;i<9;i++){
      j++;
	  if(j==6){
		  break;
	  }
	  printf("%d\n",j);
  }
   return 0;
}

输出结果为:12345,不包括6,直接就中断循环了

那如果把break换成continue呢,我们试一下:

#include <stdio.h>

int main(){
  int i,j=0;
 for(i=0;i<9;i++){
      j++;
	  if(j==6){
		  continue;
	  }
	  printf("%d\n",j);
  }
   return 0;
}

输出结果为:12345789,同样不包括6,也就是说6是跳过的,但是循环还在继续,后续依次输出789,这就是break和continue的区别。

おすすめ

転載: blog.csdn.net/u011397314/article/details/121209022