c语言复盘Part 1
main函数是程序的入口一个项目只能有一个main函数且必须有;return 0;int:返回值的类型:前后呼应字符型整型浮点型布尔类型数组结构体-struct枚举-enum联合体-union详见上文。
凭借记忆复盘 &&完整版修订
c语言的简介
c语言历史
c语言文件经过编译链接生成可执行文件(exe.)
c语言源代码都是文本文件
集成开发环境:目前使用VS2022
编译器与集成开发环境的区别
项目的创建和管理(利用gitee)
项目的创建:名称+路径
源文件(.c)和头文件(.h)的介绍
第一个一个c语言程序
主函数main详细介绍:
main函数是程序的入口
一个项目只能有一个main函数且必须有
int main( ){
;
return 0;
}
int:返回值的类型:前后呼应
关键字(保留字)
库函数的使用(printf,scanf)(包含对应的头文件)
printf=print+format
’ ':字符
" ":字符串
占位符:%d %lf %c %s
ASCII编码与字符:
数字0:48
A:65
a:97
大写转小写:+32
数字转字符:+48或+’0’
换行:10
字符串和/0
字符串末尾隐藏转义字符\0(结束标志)
strenl函数统计字符串长度(\0之前字符长度)
#include<stdio.h>
#include<string.h>
int main ( ){
int len=strenl(abcdefgh);
printf("%zu\n",len);
return 0;
}
常用转义字符
/t:制表键
/n:换行键
/ddd:八进制
/xdd:十六进制
注释
单行注释:// //
多行注释:/* */
编译时注释会被替换成一个空格
语句
表达式语句
空语句
*函数调用语句
复合语句
控制语句:
- 分支语句
- 循环语句
- 转向语句:break,continue,goto,return
c语言数据类型及变量*
数据类型介绍
内置类型
- 字符型
- 整型
- 浮点型
- 布尔类型
自定义类型
- 数组
- 结构体-struct
- 枚举-enum
- 联合体-union
字符型
char :
signed char----1byte
unsigned char----1byte
整型 :int
signed short (signed) int----2byte
unsigned short unsigned int----2byte
signed int----4byte
unsigned int----4byte
signed long signed int----4byte
unsigned long unsigned int----4byte
signed long long int----8byte
unsigned long long int----8byte
浮点型
float(保留6位小数)----4byte
double(默认)----8byte
long double----8byte
布尔类型
#include<stdbool.h>
_Bool flag =true----1byte
if (flag){
;
}
sizeof操作符
用途:计算操作符数的类型长度,单位为字节
用法:
- 操作数可以是类型也可以是表达式
sizeof (类型)
sizeof 表达式
- 表达式不真实参与运算,根据表达式的类型来得出大小
可能发生截断
- 计算结果是size_t类型----占位符%zu/%zd
signed和unsigned
unsigned的好处是:同样长度的内存能够表示的最大整数值增大了一倍
char默认类型是否带正负号由当前系统决定
数据类型的取值范围
变量
创建:
data_type(数据类型) name ;
初始化:
- 全局变量不初始化,值为0
- 局部变量不初始化,值为随机值
使用:
直接使用name
分类:
- 全局变量:位于内存中的静态区
- 局部变量:位于内存中的栈区
算数操作符:+、-、*、/、%【双目操作符】
/:
整数除法:返回整数,丢弃小数部分
浮点数:两个运算数至少有一个浮点数
%:
只用于整数运算
正负号由第一个运算数的正负号决定
赋值运算符 =【双目操作符】
复合赋值符 +=、-+、*=、/=、>>=、<<=、&=、|=【双目操作符】
++、–、+、-【单目操作符】
++/–a————先++/–再使用
a++/-- ————先使用再++/–
+/-正负号
强制类型转换
int a =(int) 3.14————只取整数部分
printf
- printf( )不会在行尾添加换行符,运行结束后光标停留在输出结束的地方,不会自动换行
- 头文件:stdio.h
- 输出文本中可以指定占位
%d
%lf
%c
%s
%p
参数与占位符是一对一应关系,有n个占位符,参数有n+1个,一个字符串也算一个参数,如果参数少于对应的占位符,可能会输出内存中的任意值
输出格式:
限定宽度————%5d(默认右对齐,不够值的前面加空格,超过以实际值为准)
左对齐 ————%-5d
限定小数位————%.5f(四舍五入)
输出部分字符串————%.5s
scanf
实际输入的的是地址
运行到这个语句会停下来等待用户从键盘输入
输入数据后,按下回车键,才开始处理(缓存)
头文件:stdio.h
占位符和参数一对一应
scanf( )处理占位符时会自动过滤空白字符,包括空格键、制表符、换行符等(读不了空格)
scanf的返回值是一个整数,表示成功读取的变量个数
没有读取任何项或匹配失败返回0
读取错误或读取到文件结尾返回EOF(-1)【3次】
#include<stdio.h>
int main( ){
int a=0,b=0;
double c=0;
int r = scanf("%d %d %lf ",&a,&b,&c);
printf("r=%d/n",r);
return 0;
}
占位符
%[ ]在方括号中指定一组匹配的字符,遇到不在集合中的字符,匹配将会停止
出来%c以外,都会自动忽略起首的空白字符,如果要强制跳过字符前的空白字符可在%c前加空格(跳过一个或多个空白字符)
%s从当前第一个非空白字符开始读起,直到遇到空白字符为止(解决方法)
%s会在字符串变量末尾储存空字符\0
不安全可能会越界————%[m]s
赋值忽略符(解决输入时的格式问题)
#include<stdio.h>
int main ( ){
int year=0,month=0,day=0;
scanf("%d%*c%d%*c%d%*c",&year,&month,&day);
return 0;
}
查书和笔记找出遗漏 :
上文斜体标注
再次总结复盘(完整版) #:
详见上文
更多推荐



所有评论(0)