C语言基础
三大执行流程
顺序执行流程
-
条件执行流程
- if语句
if(条件) { 语句体 } 如果条件成立,就执行{}的内容
- 如果没有{},就只执行if下面第一行的语句
- 不管if下面执行几条语句,都用{}便于将来代码调试。
if(条件) { 语句体 } else { 语句体 }
if (条件) { 语句体 } else if(条件) { 语句体 } else { 语句体 }
- 注意点
- 如果if语句有else,else必须放在最后,不可以放在if和else if 的中间。
- 条件分支switch
switch(变量) { case 常量1:语句体1;break; case 常量2:语句体2;break; default:语句体3;break; } 用法分析:变量与下面的常量是否相同,如果相同,则执行下面的语句。
-
注意点
- case后面的值必须是常量
- default无论放在哪都可以
- case后面的值必须是唯一的,不能与其他的case后面的变量相同。
- 每一个case后面必须要有break。
getchar():从输入缓存流取出一个字符。
吸收输入缓存流里面的回车残留 char ch; scanf(%c,&ch); getchar(); getc(stdin);
- if语句
-
循环执行流程
- while语句
int main() { int a,j; while(a<100) { if(a%2==0) j=j+a; } } 求偶数:用a&0001;
- do-while语句
- for语句
for(表达式1;条件;表达式3) { 语句体2 }
- 分析:
- 先执行表达式1,表达式1有且执行一次,在判断条件是否成立。
- 再判断条件是否成立,如果条件成立,就执行语句体2;
- 执行完语句体2之后再去执行表达式3
- 再从步奏2开始判断
- 注意点:
- 不能省略;
- 如果是for( ; ; ),会是一个死循环。
#include <stdio.h> int main() { int i=1,sum=0; for(;i<100;) { sum+=i; i++; } printf("%d",sum); }
break与continue
- break只能在switch,for,while,do-while里面做。
- berak是跳出整个循环,继而执行以下面的代码。
- 当碰到break语句时,break下面直到循环体}里面的语句不会被执行。
- break只跳出最近的一层循环
- continue只能用在循环中,只是跳出一次循环,继而执行下面的循环。
//输入字符串,计算字符的个数,遇空格结束
#include <stdio.h>
int main()
{
char ch;
int i=0;
while((ch=getchar())!='\n')
{
if(ch==' ')
{
break;//遇空格跳过继续计算则用continue;
}
i++;
}
printf("%d\n",i);
return 0;
}
数组
- 数组的定义
int array[30];
//1. 数组的初始化
int array[6]={1,2,3,4,5,6}
//2. 元素不足用0补全
int array[6]={1,2,3}
//3. 如果行号省略,根据后面的元素的实际个数确定行号。
int array[]={1,2,3}
//4.不准这么写
int size=5;
int array[size]={}
//5. 字符是一种特殊的整形
int array['a']={1,2,3}
//6.
int array[5]={[4]=8,[5]=7}
//7. 越界访问+师徒试图将一个数组赋值给一个变量。
int array[5];
array[5]={1,2,3,4,5}
//结论:如果想初始化,请在定义数组时赋值。
- 数组元素的访问:数组名[下标]
- 0<=下标<=数组大小
- 数组的遍历,挨个访问数组元素
int i=0;
int a[5]={1,2,3,4,5}
for(i=0;i<5;i++)
{
printf("%d ",a[i]);
}
- 数组是连续分配存储的
- 数组名相当于首元素的地址
array:0xffc0 array+1个单位:array+sizeof (int)*1=0xffc4 array+2:0xffc8
- 访问第i个元素的值:array[i]
- 访问第i个元素的地址:array+i,&array[i]
小结:今天把break,continue终于弄得很明了,以前的弄懂其实是自以为是,今天的课堂上跟着苍老师一起重复多次学习了他们的使用,根据一些已有的源代码,得到了很好的了解。
晚上听了上嵌电台,以及朱老师的如何度过你的试用期的音频。觉得上嵌对于学员的就业真是用心良苦,做了电台,录了朱老师现场演讲,每字每句对我这种面试小白都是数不尽的经验值加成。要好好听,认真学,不能一听一忘,听后感是必须的,但怕自己总结的不够好,所以还是列下要点为好。恩,待我重开文章一篇。