语句://创建一个学生类型
struct Stu
{
char name[20]; //成员变量
int age;
double score;
};
//创建一个书的类型
struct Book
{
char name[20];
float price;
char id[30];
};
int main()
{
struct Stu s = {"张三",20,85.5}; //结构体的创建和初始化
printf("1:%s %d %1f\n", s.name, s.age, s.score); //结构体变量.成员变量(. *** 作符);引号里的1代表第一次打印
struct Stu* ps = &s;
printf("2:%s %d %1f\n", (*ps).name, (*ps).age, (*ps).score);
printf("3:%s %d %1f\n", ps->name, ps->age, ps->score); //结构体指针->成员变量名
return 0;
}
//1f是双精度浮点;f是单精度浮点
C语言是结构化的程序设计语言:顺序结构、选择结构、循环结构
C语言中由一个分号;隔开的就是一条语句。比如:a+b;printf(”666”);
分支语句(选择结构):if、switch
循环语句:while、for、do while
if语句:<非0就是真;0就是假>
1.
if(表达式) //如果表达式结果为0就是假,语句不执行;结果为非0.语句执行
语句;
例子:
int main()
{
int age = 20;
if (age >= 18)
printf("adult");
return 0;
}
2.
if(表达式)
语句1;
else
语句2;
例子:
int main()
{
int age = 10;
if (age >= 18)
printf("adult");
else
printf("child or teenager");
return 0;
}
if、else语句加上{}是多条语句;不加只能一条语句。
例子:
int main()
{
int age = 20;
if (age >= 18)
{
printf("adult\n");
printf("Anyway");
}
else
{
printf("child or teenager\n");
printf("No smoking");
}
return 0;
}
3.//多分支
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
例子:
悬空else:int main()
{
int age = 24;
if (age < 18)
printf("少年");
else if (age >= 18 && age < 30)
printf("青年");
else if (age >= 30 && age < 60)
printf("中年");
else if (age >= 60 && age < 100)
printf("老年");
}
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
运行结果就是:没有打印结果,既不是hehe,也不是haha。
因为else和离它最近的if匹配,与对齐方式无关
if书写形式的对比:
//代码1
if (condition) {
return x;
}
return y;
条件满足,返回x;否则返回y;
//代码2
if (condition)
{
return x;
}
else
{
return y;
}
int main()
{
int num = 3;
if (num = 5) //这条代码是错误的
printf("666\n");
return 0;
}
// 因为5是常量不可以被赋值,但此时依然可以运行,且没有报错;解决方案如下:
int main()
{
int num = 3;
if (5 == num)
printf("666\n");
return 0;
}
PS:==的意思是判断是否等于,=的意思是赋值
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)