1.结构体
自己创造出来的一种类型//struct结构体关键字
#include<stdio.h>
#include<string.h>
struct Book
{
char name[20];//name是数组名,本质上是一个地址
short price;
};//;不可缺少,是定义结束的标志
int main()
{
//利用结构体类型创建一个该类型的结构体变量
struct Book b1 = {"C语言程序设计”,55};
struct Book* pb = &b1;
b1.price = 15;
strcpy(b1.name, "C++");
//strcpy-string copy字符串拷贝,需要引头文件<string.h>
printf("书名:%s\n",b1.name);
printf("价格:%d\n",b1.price);
printf("%s\n",(*pb).name);
printf("%d\n",(*pb).name);
printf("%s\n",pb->name);
//pb->name pb所指向的对象的name成员
//. 结构体变量.成员
//-> 结构体指针->成员
return 0;
}
2.分支和循环
C语言是一门结构化的程序设计语言
(1)顺序结构
(2)选择结构//if语句//switch语句
(3)循环结构//while语句//for语句//do while语句
3.C语言中由一个分号;隔开的就是一条语句
空语句:只有一个分号,其他什么都没有
4.分支结构:选择语句
(1)if语句 语法结构:
//1.
if(表达式)
语句;
//表达式为真,执行语句,表达式为假,什么都不执行
//2.
if(表达式)
语句1;
else
语句2;
//表达式为真,执行语句1,表达式为假,执行语句2
//3.
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
//当执行多条语句时需使用代码块
//else和距离最近的if匹配
if(condition)
{
return x;
}
return y;
//是condition为真,返回x,condition为假,返回y的意思,但最好不要这样写
//在写判断一个变量等于一个常量时,最好将常量写在左侧
(2)switch语句
#include<stdio.h>
int main()
{
int day = 0;//必须用整型
scanf("%d",&day);
switch(day)//(整型)
{
case 1://case后必须是整型常量表达式
printf("星期一\n");
break;//跳出switch语句,若不加则会执行该case后的全部语句
//下同
case 7:
printf("星期日\n");
break;
default://如果输入的day值不是1234567中的任意一个,执行default
//case和default没有顺序要求
printf("输入错误");
break;
}
return 0;
}
如果多个case输出相同,可以合并,如:
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d",&day);
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日");
break;
case 6:
case 7:
printf("休息日");
break;
default:
printf("输入错误");
}
return 0;
}
5.循环结构:循环语句
#include<stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(5 == i)
break;//循环遇到break立刻停止
//遇到continue跳过本次循环后面部分,立刻返回while(i<=10)继续进行判断
printf("%d\n",i);
i++;
}
return 0;
}
6.getchar//putchar
//getchar接收一个键盘的字符,接收后将字符返回
#include<stdio.h>
int main()
{
//int ch = getchar();//用ch来接收返回值
//putchar(ch);//打印ch
int ch = 0;
while((ch=getchar()) != EOF)
//输入Ctrl+z停止运行
//EOF - end of file -> -1
//不能直接输入EOF//只会分别读取E,O,F,输出EOF
{
putchar(ch);
}
return 0;
}