今天早晨没有带雨伞,怀着迫切的心情冒雨来上课。

对于有符号数或者无符号数,超出范围,用回环。

类型转换:

强制类型转换 将浮点型转换为整型等

#include<stdio.h>

int main()

{

float a=3.453332;

int b=(int)a;

printf("%d",b);

return 0;

}

隐式类型转换

发生在数据运算的内部,自动发生类型转换

#include<stdio.h>

int main()

{

int a=20;

float b=30;

printf("%f",a+b);

return 0;

}

有符号向无符号转换

#include<stdio.h>

int main()

{

int a=-10;

unsigned int b=-100

printf("%u",a+b);

return 0;

}

#include<stdio.h>

int main()

{

int a=-10;

unsigned int b=-100;

printf("%d",a+b);        //        -100

return 0;

}

输入输出

#include<stdio.h>

int main()

{

int a;

scanf("%d",&a);

printf("%d",a);

return 0;

}

为啥scanf要用取地址?把数字放到存储空间中,但内存中可能存在相同名字的空间,因此要把数据准确放到我想要的空间,即知道空间的地址。

格式控制符:

%d int类型

%m.nd m控制对齐的方式 %-m.nd(左对齐) %m.nd(右对齐)

#include<stdio.h>

int main()

{

int a=10;

printf("%-5.4d",a);        //        有效数字为4

printf("%5.4d,"a);

return 0;

}

%c 字符格式控制符

#include<stdio.h>

int main()

{

char a;

char b;

scanf("%c%*c%c",&a,&b);

// scanf("%c%c\t",&a,&b);

printf("%c,%c",a,b);

//  printf("%c,%c\t",a,b);

return 0;

}

%*c的作用是抑制一个字符生效,该字符可为任意字符

%t是转义字符,代表一个TAB

%c是转义字符,代表一个换行

%s

#include<stdio.h>

int main()

{

char a[]={‘\0’};

scanf("%c",a);

printf("%c\t",a);

return 0;

}

%f 打印浮点型数据

#include<stdio.h>

int main()

{

float a=3.1415926;

printf("%4.2f",a);

//        printf("%-4.6f",a);

return 0;

}

%m.nf 当m或n是正数或者负数,只是控制域宽,不需要对齐

当n小于m的时候,跟着域宽的大小走

当n大于m的时候,跟着n的大小走

%o 打印八进制

%x 打印十六进制

#include<stdio.h>

int main()

{

int a=100;

printf("%#o,%#x",a,a);

return 0;

}

字符输入

getchar 获得字符

putchar/putc 输出字符

gets 获得字符串 输入不定量的字符,容易造成段错误

puts 从标准输出上显示字符串

#include<stdio.h>

int main()

{

char a;

a=getchar();

putchar(a);

return 0;

}

常量的值在程序运行过程中不能发生改变

整型常量:

十进制:97

八进制:076

十六进制:0xab

字符常量:

用单引号包裹起来的量:'a' '*' '1' '5'

字符串常量:

用双引号包裹起来的量:"abcd" "*&A"

小数型常量:

浮点型:3.14

指数型:2e+7

宏常量:

当宏是数字的时候,只是一个简单的名字

当宏是表达式的时候,是一个带参数的名字

#define PI 3.1415

#include<stdio.h>

#define PI 3.1415

// define add(x,y) x+y

define add(x,y) (x+y)

int main(int argc,const char *argv)

{

double a=10000;

double b=a*a*PI;

double c=add(e+f)*add(e+f);

double e=3.0;

double f=4.0;

printf("%f",b);

printf("%f",c);

return 0;

}

变量

存储类型 数据类型 变量名

存储类型:需要在内存的什么地方开辟空间

数据类型:开辟多大的空间

堆区:程序员自己开辟malloc和释放free空间的区

栈区:存放局部变量和局部参数

数据段:存放的是未被初始化过的全局变量

存储类型的四个关键字

auto:修饰的是局部变量,可以省略,为默认的存储类型

register:被修饰的变量叫寄存器变量,放在寄存器当中

static:被修饰的变量叫做静态变量

extern:引用外部变量

变量又可以分为全局变量和局部变量

局部变量:在main函数内部定义的变量。对于局部变量来说,不进行初始化和赋值,出现的结果是随机数

全局变量:在main函数外部定义的变量

初始化:在定义变量的时候就已经给好值 int a=10

赋值:先定义,再给值 int a;a=10

对于全局变量

#include<stdio.h>

int a;

int main()

{

printf("%d",a);

return 0;

}

对于全局变量来说,不进行初始化和赋值,结果就是0

对于局部变量来说,不进行初始化和赋值,结果是随机数

#include<stdio.h>

int main()

{

int i=0;

for(i=0;i<5;i++)

{

int sum=1;

sum=sum+i;

printf("sum=%d",sum);

}

return 0;

}

0 1 2 3 4

1 1 1 1 1

#include<stdio.h>

int main()

{

int i=0;

for(i=0;i<5;i++)

{

static sum=1;

sum=sum+i;

printf("sum=%d",sum);

}

return 0;

}

0 1 2 3 4

1 1 2 4 11

被static修饰的局部变量,相当于延长了局部变量的生命周期

现在下课休息,玩了会《战争游戏 红龙》,这样做叫做劳逸结合!

现在开始上课了

认真听课!

static修饰的全局变量,从定义的变量开始,到整段程序结束

#include<stdio.h>

int a=10;

// static int a=10;

int b=20;

#include<stdio.h>

extern int a;

extern int b;

int main()

{

int c=a+b;

printf("%d",c);

return 0;

}

用static修饰的全局变量,无法被引用,用static修饰的全局变量缩小了作用域(用extern引用的外部变量)

生命周期:离变量最近的上面的前括号开始,到跟这个前括号匹配的到后括号结束

作用域:在那个文件内有效

被static修饰的局部变量,延长了生命周期

被static修饰的全局变量,缩小了作用域

全局变量和局部变量是否可以重名?

可以,重名的时候优先使用局部变量,当局部变量生效的时候,再使用全局变量

运算符

算术运算符:+ - * / %(只能用于整型)

逻辑运算符:

&&(全真则真,当两个条件前面为假时,直接截断,整个表达式的值为0)

||(只要有一个为真,就为真)

关系运算符:< > <= >= ==

三步运算符:c=a>b?a:b

逗号运算符:将最后一个表达式的值作为整个表达式的值

在a=1时,经过一次++a之后要进行两步运算,先给a自加a=a+1,然后再将a的值整体赋值给++a

在a=1时,经过一次a++之后要进行两步运算,先把a的值赋值给++a,再给a的值加1

备注:Linux终端的命令行模式 vsp zzzz.c 新打开一个文件

2022年9月20日

徐子宸

C语言补习(西安华清远见)第二天相关推荐

  1. C语言补习(西安华清远见)第六天

    今天早晨在华清远见(西安中心)会议室连了一根新的10米网线,准备迎接接下来的学习. &arr[0][0]:站在小元素的角度 arr[0]:从二维数组中的第一个一维数组看 &arr[0] ...

  2. C语言补习(西安华清远见)第一天

    开班典礼已经结束,老师即将开始讲解C语言. 这几天在自学<C Prime Plus>,希望能对我的学习有帮助!我的学习计划是在学校上课的每天都写学习总结.俗话说的好,积少成多,滴水穿石.相 ...

  3. 西安华清远见学习一周的收获总结----ubuntu的安装,适合初学者

    对ubuntu的安装及其基本指令的介绍 安装ubuntu可以自己去官网下载镜像,也可以使用作者的方式.前者比较官方,需要配置各种,后者简单不麻烦,适合初学者.如果还有什么问题请私信作者或者评论即可. ...

  4. 华清远见智能家居ppt_怀揣梦想,一路前行——西安华清与西安培华实训集

    2020年9月-10月,华清远见西安中心与西安培华强强联合展开了为期一个月的项目合作. 在华清远见西安中心老师的指导下,培华学子们干劲十足,纷纷动手操作,团队合作,完成了一项项优秀的作品~智能家居.智 ...

  5. 华清远见嵌入式c语言学习笔记

    C补习阶段总结 毕业已经快有两年了,C语言还是刚上大学那会学习的了,该还的和不该还都都一并还给了当初的老师了. 还记得那会C语言是我们班挂科率最高的一门课程,我侥幸得以飘过,但是也给自己留下了C语言比 ...

  6. 华清远见第一周学习体会

    秋高气爽的十月,怀着无比的憧憬与希望,我来到了西安华清远见,参加嵌入式课程的学习.即使疫情又一次袭扰我们的生活,但在老师不畏艰难的带领下,带我敲开了嵌入式的大门. 经过第一天的学习,让我对所学的嵌入式 ...

  7. 阶段总结:华清远见毕业总结

    在毕业之际,苦于自身水平不足,不够完善的技能不足以在就业形势严峻的今天找到一份适合的工作,由于我是一个电子信息工程专业出身的学生,在学校里通过专业选修等课程接触到了单片机和嵌入式等课程,从而产生了一点 ...

  8. 华清远见嵌入式毕业总结

    自五月入学华清以来,系统性地学习嵌入式课程已四月有余,在整体的学习过程中,有一些感受想要记录和分享.        一开始对嵌入式的整体体系,并不清楚,最开始只了解应用层和底层这两个大方向.随着课程的 ...

  9. 华清远见嵌入式班结业总结

    每年的五月正值万物生长的蓬勃季节,自己也不能够落下,拾起尘封日久的书籍,翻开黄黑相间的教程,刷新在线浏览的视频,有意而无形之间,我的嵌入式之旅悄然开始了.但网络资源过于丰富,让我有些眼花缭乱,难以把握 ...

最新文章

  1. ubuntu 安装git
  2. DNF包管理命令在CentOS 8和RHEL 8上的使用
  3. SD 模拟sip 读写子程序
  4. 【转】SpringMVC整合websocket实现消息推送及触发
  5. 记Python的一些用法
  6. 端口扫描工具zmap使用笔记
  7. 招聘网站职位分析数据可视化系统(Hadoop课设)
  8. python海龟库函数大全_python海龟库的使用
  9. Android Studio入门级教程(详细)【小白必看】
  10. python3 模块调用其他类的方法_python类的函数调用 python如何引用其他模块中类的方法中的变量?...
  11. 执法部门的“新助手” 扫二维码进群反映问题
  12. 小米公司2021秋招面试题目整理
  13. 手动脱壳----PECompact 2.x - Jeremy Collake
  14. 一到冬天就手脚冰凉是怎么回事?宝宝手脚冰凉怎么办?
  15. 手写一个简单的IOC容器
  16. 网络电视html5软件,网络电视软件哪个好
  17. 天馈 频谱 场强 +定位,手持式信号综合分析仪---TFN AMT950C
  18. 猴子分桃的题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了 一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分 成五份,又多了一个,
  19. cad高版本怎么转换成低版本?这个办法挺实用
  20. 微信小程序反编译整理,wxss不成功

热门文章

  1. Linux内核基础——Linux中断的概念
  2. 什么是中断,为什么要用中断?
  3. (2017年)如何配置outlook的邮箱在foxmail登录,并使用pop
  4. 程序创业:小型软件公司如何做大(转)
  5. IMX8M mini开发板资料分享
  6. 儿童编程scratch
  7. Excel 2010 VBA 入门 119 创建对话框的帮助文档
  8. APP案例分析-热血江湖
  9. 华为MU609调试记录
  10. 深信服邮箱服务器,SANGFOR_aDesk_V5.2_云盘服务器部署指导.pdf