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);
循环执行流程
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
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
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终于弄得很明了,以前的弄懂其实是自以为是,今天的课堂上跟着苍老师一起重复多次学习了他们的使用,根据一些已有的源代码,得到了很好的了解。
晚上听了上嵌电台,以及朱老师的如何度过你的试用期的音频。觉得上嵌对于学员的就业真是用心良苦,做了电台,录了朱老师现场演讲,每字每句对我这种面试小白都是数不尽的经验值加成。要好好听,认真学,不能一听一忘,听后感是必须的,但怕自己总结的不够好,所以还是列下要点为好。恩,待我重开文章一篇。