c语言 强制转换 作用域,C语言之总结1详解
1). 终端常用的命令:
pwd 显示终端的工作路径.
ls list 清单 显示当前工作路径下的所有的文件以及文件夹.
ls -l 以详细信息显示当前工作路径下的所有的文件以及文件夹.
cd 要切换的工作路径 ******************* Change Drictory
mkdir 在当前工作路径下创建1个文件夹.
clear 清除屏幕上的信息.
touch 在当前工作路径下创建1个空文件.******************
2).编译
编译器在编译代码的时候,会先检查你的.c文件是不是符合C语言语法规则的,如果不符合会报错或警告,提示你具体哪里出错了
warning--->警告 编译可以通过,能形成.o文件 是否能形成a.out是不确定的
error ---->错误,你代码是错的,连编译形成.o 的资格都没有
3).C语言中常见的数据类型
int
整数 -2147483648 ---- 2147483647
"有效位: 从左边开始第一个不为0的数开始数,数相应的位数
float
单精度小数(单精度浮点数) 有效位数不超过7位的小数,超过7位 的部分不能精确的保存
1234.5678f
double
双精度小数(双精度浮点数) 有效位数不超过16位的小数,超过16位的部分不能精确的保存
12345678912345.127
char
字符 'A' 'B' 'C' 'D'
4).变量
1.关于变量的概念
变量 == 坑 == 用来存储数据
变量的值 == 坑中存储的数据
变量名 == 坑的别名 == 可以找到坑
变量类型 == 坑的类型 == 内存中存储的数据的类型
变量的本质:在内存中存储数据的那块空间.
2.数据要存在内存中的步骤
1>在内存中开辟一块空间
2>开辟空间的同时要指定这块空间的别名类型
3>这个空间的类型决定了这个空间中可以存储的数据的类型
5).类型转换
当赋值符号两边的数据类型不同的时候,数据类型转换是自动的,不需要程序员插手
隐式转换:自动转换 编译器自动帮你判断转换成什么类型
int num = 3.3333;
显示转换:强制转换 程序员自己写代码指定你的数据转换成什么类型
int num = (int)3.3333;
6). 短路问题大全
当自增自减运算和逻辑运算组合时,编译器编译代码的时候,放弃优先级,去从左向右扫描,最后去判断自增自减要不要去执行
当逻辑&&和逻辑||组合运算时,仍然是放弃优先级,从左向右扫描,如果有短路,后面的就不执行,如果没有短路,那么就按照正常的优先级来计算
7). 变量的作用域
1. 变量的作用域如何寻找,向外寻找包裹着这个变量的定义的语句的最近一层的大括号
a.寻找作用域
b.变量在自己的作用域内可以被访问,不受内层的大括号限制
2.外层作用域可以和内层作用域的变量同名,使用遵循就近原则
3.变量出了自己的作用域就会被操作系统从内存中回收,程序员就无权再使用
8).switch-case
1. switch后面可以写任何表达式,也可以直接写个数字,无论是什么形式,必须是整数类型
2. 每一个case模块中的break可有可无,有就遇到break结束整个switch,没有就一直向下穿透,直到遇到break或者整个switch结束,不会进行判断. **********
3. 整个default模块也是可有可无的,有就所有case都不满足的情况下执行default,没有就所有case都不满足结束switch结构.
4. 如果多个case模块所要执行的处理是一样的,可以利用case穿透来实现
结论:
switch适合做等值判断,不适合做范围判断,对于需要做范围判断的功能最好使用if结构
9).for注意事项
1.如果第3个表达式已经自增,那么在循环体中就不要自增了
2.第3个表达式后没有分号
3.3个表达式都可以省略,但是分号不能省略
4.如果第2个省略 那么循环条件默认就成立
5.3个表达式其实任意的语句都是可以的. 但是只能是3句
10).全局变量和局部变量的异同
1.相同点
都是一个变量,都是用来存储数据的
2.不同点
a.定义的位置不同
局部变量:定义在函数内部的变量
全局变量:定义在所有函数外部的变量变量叫做全局变量
b.作用域不同
局部变量"最多"只能在函数的内部访问
全局变量:从定义的位置开始,从定义的这一行以下都能访问
注意:全局变量一般都定义在程序最的最上面
3.初始值
局部变量:初始是垃圾值
全局变量:0
注意:'\0'这个字符的ASCII码是0,'\0'这个字符是不可见的,不占位置的.
4.创建和回收的时间不同
局部变量:程序运行到局部变量那一行代码的时候才会创建,在作用域结束回收
全局变量:程序一启动就会创建,在程序运行结束回收
注意:局部变量可以和全局变量同名,具体使用哪一个,遵循就近原则.另外开发的时候不要这样做,程序的可读性太差.
11).函数的声明和定义
1. 如果函数写了声明,那么这个函数的定义就可以放在调用函数的后面了.
2. 函数的声明最晚应该放在调用函数的前面. 一般情况下,函数的声明都是统一放在最顶部的.
3. 如果被调用的函数在主调函数之前.那么这个时候,被调用函数的声明可以省略,在前面直接写定义.
如果被调用函数的定义在主调函数的后面,那么这个时候必须在调用之前声明这个被调函数.
4. 声明函数的函数头,必须要和实现函数的函数头一致.
5. 在声明函数的时候,如果函数还有参数 那么参数的名称可以省略.只写类型.
虽然这样可以,但是我们还是建议你 声明和实现的函数头一模一样.
6. 如果函数的返回值是int类型的,可以不写这个函数的声明.
c语言 强制转换 作用域,C语言之总结1详解相关推荐
- 单片机C语言DA转换,51单片机PCF8591的DA转换程序详解[含HL-1与HJ-c52 DA代码AD/DA原理图](可直接复......
以下是补充(能想到的范围有限有没想到的还请谅解) DA工作原理 基于PCF8591芯片 DA是什么? n DA指数模转换(Digital to Analog),顾名思义,就是把数字信号转换成模拟信号. ...
- c语言强制转换是四舍五入,c语言强制转换四舍五入.docx
c语言强制转换四舍五入 在C语言中,强制转换后的数是四舍五入还是去尾?去尾要想四舍五入的话(int)(number+0.5)都是直接去尾的.当为数太多时直接截断.所以在强制转换时要很注意C语言有没有数 ...
- c语言强制转化指针,C语言指针强制转化的应用
指针类型强制转化在kernel设计中非常常见,这里记录两个非常有意思的用法: 1.对地址进行运算.任何虚拟地址都表示成void *va = (void *) 100, *(va + 1) ==101 ...
- 电大计算机C语言1253,1253《C语言程序设计》电大期末精彩试题及其问题详解
1253<C语言程序设计>电大期末精彩试题及其问题详解 (34页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 实用文档&l ...
- linux c 设置utc时间,C/C++标准库之转换UTC时间到local本地时间详解
前言 UTC 时间DateTime.UtcNow 和 系统本地时间 DateTime.Now 相差8个时区 ,美国本地时间和北京时间相差15个时区: 美国,而一般使用UTC时间方便统一各地区时间差异. ...
- c语言强制转换字符类型,C语言中的数据类型转换问题
C语言中的数据类型转换问题 ● 字符型变量的值实质上是一个8位的整数值,因此取值范围一般是-128-127,char型变量也可以加修饰符unsigned,则unsigned char 型变量的取值范围 ...
- c语言强制转换字符类型,C语言数据类型转换实例代码
数据类型转换就是将数据(变量.表达式的结果)从一种类型转换到另一种类型.例如,为了保存小数你可以将int类型的变量转换为double类型. 数据类型转换的一般格式为: (type_name) expr ...
- 类型转换:隐式转化(算数转换,整型提升,混合提升,赋值转换),强制转换【C语言】
类型转换 隐式转化 算数转换 整型提升 混合提升 赋值转换 强制转换 编译器使用注意 小结 类型转换 隐式转化 不需要人为参与而产生的默认转称为隐式转化. 隐式转化,是计算机语言实现层面最难的,指针是 ...
- C语言强制转换与输出格式不对应问题
强制转换共分两种 第一种:(int ) (x+y); 第二种:(int )x+y;针对这两种的程序运算以及出错点: #include<stdio.h> int main() {int a; ...
最新文章
- HBASE强制删除表
- 适合数据科学小白的必备Python工具! ! !
- 「NLP」用于序列标注问题的条件随机场
- eclipse中各种查找
- Sizzle引擎--原理与实践(二)
- JAVA面试--史上最全 69 道 Spring 面试题和答案
- 批量删除Marketing Cloud里的contact
- HTTP Status 500 - javax.servlet.ServletException: File [/head.jsp] not found
- mysql怎么精简_我这个mysql查询该如何精简,提高效率啊?
- frisby用例动态链
- linux 摄像头设置时间同步,linux系统设置时间同步
- Linux下的压缩和解压缩命令——compress/uncompress
- AI一分钟 | 小米在香港提交招股书募资100亿美元;寒武纪发布首款云端AI芯片和第三代终端IP...
- PMP干货教你一秒选对PMP考试答案!
- 2022-2027年中国智能硬件行业市场深度分析及发展战略规划报告
- HDU2177——取(2堆)石子游戏(威佐夫博弈)
- Blender程序化建模简明教程【PCG】
- 记一次对PUBG吃鸡外挂病毒的反制过程
- 使用Python+selenium实例化Microsoft Edge或Chrome浏览器对象和常见的报错
- 计算机应用中dss是,基于数据仓库的决策支持系统(DSS)-计算机应用专业论文.docx...
热门文章
- Redhat7 Dell服务器驱动安装(Bin格式)
- sqlserver连接oracle(通过ODBC)
- web加减乘除法c#_c# 两个数的加减乘除
- applicationcontext添加配置_让小白也能懂的Bean配置方法
- jssdk更新日志_关于jssdk版本的阿里云网站内容、产品介绍、帮助文档、论坛交流和云市场相关问题...
- 如何去掉Orcad Capture中元件标号下划线
- MapReduce-多个Mapper
- java九种数据类型以及封装类
- oracle 常用知识点整理
- 实现远程连接MySQL