if()循环
if()循环可以用三目运算符代替。
switch()循环
结构:
switch(i)
{
case 常量 :语句1;break;
case 常量 :语句2;break;
default:语句3;
}
while()循环
当循环条件为真时,就执行循环体语句。
do···while()循环
结构:
do
{
语句;
}while(表达式);
特点:先无条件执行一次,然后再去判断循环条件。
for()循环
结构:
for (int i = 0; i < count; ++i)
{
语句;
}
continue:提前结束本次循环
break:提前终止循环
控制每行输出的数
if(i%5==0) printf("\n");
所要输出的语句
%s:字符串
printf("%s",c);
就是一个函数在运行时把自己调用了。
递归的实例:
/*hanoi*/
#include
int main()
{
void hanoi(int n,char one,char two,char three);
int m;
printf("input the number of diskes:");
scanf("%d",&m);
printf("The step to move %d diskes:\n",m);
hanoi(m,'A','B','C');
}
void hanoi(int n,char one,char two,char three)
{
void move(char x,char y);
if (n==1)
move(one,three);
else
{
hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
}
}
void move(char x,char y)
{
printf("%c-->%c\n",x,y);
}
定义在函数内部的,只在函数的内部起效果。
定义在函数的外边,在所有函数中都有效果。
程序运行期间由系统分配的固定的存储空间,在整个文件内有效。
在程序运行期间根据需要进行动态的分配空间,在某个函数内有效。
只在一个函数内部起作用,不能被其他文件所调用。
可以供其他文件中的调用。
例:
extern int fun(int a,int b)
{
}
定义指针:
类型名 *指针变量名;
int *pointer;
pointer 地址
*pointer 数据
&pointer 原内容地址
指针与数组
定义时:
int *p=a;
等效于:int *p=a;p=&a[0];
这样是将a数组元素(即a[0])的首地址赋给指针变量p(并非赋值*p)
指针的运算:
例:p+1 指向同一数组的的下一个元素
p-1 指向同一数组的的上一个元素
p++
p--
通过指针引用数组元素
1.下表法:
a[i]
2.指针法:
*(a+i)
*(p+i)
结构:
struct 结构体名
{
成员表列
}
struct
{
成员列表
}变量名列表
1.声明结构体类型
2.定义一个指向结构体类型数据的指针变量
例:
struct student stu[],*p=stu;
结构体数组 结构体指针
struct student
{
成员列表;
struct student *next;
}
在需要时通过 malloc来拓展空间,然后再进行数据的操作。
在删除数据时通过next删除要删除的元素,然后可以通过free来释放被删除元素所占的空间。
例:
typedof struct
{
int month;
int day;
int year;
}Date;
以上结构声明了一个新类型名Date,代表上面的结构体。所以可以用上面的新的类型名来定义变量。
例:
Date birthday;
Date *p;
文件类型指针(文件指针)FILE
FILE结构体类型的信息已经包含在stdio.h文件中
定义一个指向文件型数据的指针 FILE *fp; 通过文件指针变量能够找到与它相关联的文件。
文件的操作
fopen(文件名,使用方式);打开文件
使用方式:r,w,a,rb,wb,ab,w+,r+,a+,
fclose(文件指针);关闭文件