C语言知识整理1
1. 头文件引用
include <stdio.h>
- .h为头文件后缀
- stdio.h为标准输入输出的头文件
- <>""区别
""表示编译器会首先从自己的工程里面去查找这个头文件,如果没有那么会从系统库里面去查找
<>表示编译器首先从系统库里面去查找这个头文件,如果没有那么会从当前工程里去找
2.main函数
int main
- main任何的一个程序必须有一个入口点
- 返回值return:int 标识这个程序的运行结果 0正常 1(非零)失败
0程序正常退出,程序的资源自己分配
1非正常退出,程序会没收运行过程中获取的资源
3. 集成开发环境IDE
- 写代码->文本编辑器 文本文档 sublime
- 编译->编译器 java javac 编译原理
- 显示结果 console
- 高级语言 c c++ java oc kotlin swift
- 编译器 将高级语言转化为低级语言
过程:
预编译(预处理)将头文件进行展开
汇编 将高级语言转化为汇编语言
编译 二进制数据
链接 1.0 2.0 3.0->可执行的程序.exe
运行
机器语言 011010101
4. 关键字
-
编译器定义的 char char*string
不能用关键字命名
timg.jpg
5. 注释
- //单行注释
- /* 多行注释 */
不能嵌套 对一个方法/函数注释
/* 主入口函数
params:
argc几个参数
argv[]字符串数组
return:
int 0 1 */
6.App的Runtime
while(1){
//显示界面
//监听事件
}
7.基本数据类型
- int 整数 64位系统里面占4个字节 32位占2个字节
输出格式:%d %02d 不足的补齐 01 - float 浮点型 占4个字节内存空间
输出格式:%f %.1f 保留1位有效数字 - double 双精度浮点型 占8个字节内存空间
输出格式:%f - long 长整型 占8个字节内存空间
输出格式:%ld - char 字符型 占1个字节内存空间
输出格式:%c输出字符 %d输出ASCII码值 - bool 布尔类型 true/false 非零即真 零即假
8. 声明与定义变量的区别
- 定义一个
int a = 1;
立刻为我们分配内存空间,赋初值1 - 声明一个
int a; a = 1;
没有分配内存空间,使用时才分配,默认值为0
9. 条件语句
- if 非零及真
continue结束当前一次循环,进入下次循环
break直接跳出循环 - switch
default代表其他事件情况
switch语句执行时会从上到下根据括号中表达式的值作比较,当某个case语句中的表达式与此值相同
时,就执行这个case语句或语句序列,直到遇到break为止
10.循环语句
- for(循环控制变量的初始化;条件;变化){}
和数组相关,并且需要知道当前是第几次时使用
执行流程 1.初值 2.判断 3.操作 4.操作完毕i++
初始化和变化可以省略
int i = 0
for(;i<10;){
printf("%d",i);
i++;
}
- while
不关心当前是第几次
先判断在执行 - do while
先执行再判断
ATM机系统模拟实战
目的
* * *****
欢迎光临
* * *****
请输入密码:123
错误-> 密码错误请重新输入: 最多输入4 -> 此卡已冻结 请联系客服 -> 退出
正确->
1.取款
请输入取款金额:200-> 取款成功 当前余额为20
->余额不足 是否继续Y/N
2.存款
请输入金额
3.更改密码
请输入原始密码->请设置密码->请确认密码
4.退出
#include <iostream>
#include <stdlib.h>
int main()
{
int order;
int password = 123;
int key;
int money;
int left;
char idea;
begin:printf("****************\n WELCOME\n****************\n");
printf("请输入密码:");
for (int i = 0; i < 4;) {
scanf_s("%d", &key);
if (key == password) {
printf("1.取款\n2.存款\n3.更改密码\n4.退出\n");
printf("请输入操作选项:");
while (1) {
scanf_s("%d", &order);
switch (order) {
case 1:
MONEY: printf("请输入取款金额:");
scanf_s("%d", &money);
if (money <= 220) {
left = 220 - money;
printf("取款成功,当前余额%d", left);
}
else {
printf("当前余额不足,是否继续\nY/N\n");
scanf_s("%c", &idea);
if (idea == 89) {
goto MONEY;
}
else if (idea == 78) {
exit(0);
}
}
break;
case 2:
printf("请存款"); break;
case 3:
printf("请输入原始密码");
scanf_s("%d", &key);
if (key == password) {
printf("请输入新密码:");
scanf_s("%d", &password);
REPEAT:printf("请再次重复密码:");
scanf_s("%d", &key);
if (key == password) {
printf("已重置");
goto begin;
}
else {
printf("输入错误,请重输");
goto REPEAT;
}
}
break;
case 4: printf("886"); break;
default: printf("不合法输入,请重新输入\n");
}
if (order == 4)break;
}
}
else if (i == 0 || i == 1 || i == 2) {
printf("密码错误,请重新输入\n");
i++;
}
else {
printf("此卡已冻结");
exit(0);
}
}
return 0;
}
网友评论