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语言之总结1的更多相关文章
- C语言 · 高精度加法
问题描述 输入两个整数a和b,输出这两个整数的和.a和b都不超过100位. 算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储.对于这种问题,一般使用数组来处理. 定义一个数组A ...
- Windows server 2012 添加中文语言包(英文转为中文)(离线)
Windows server 2012 添加中文语言包(英文转为中文)(离线) 相关资料: 公司环境:亚马孙aws虚拟机 英文版Windows2012 中文SQL Server2012安装包,需要安装 ...
- iOS开发系列--Swift语言
概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...
- C语言 · Anagrams问题
问题描述 Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的.例如,"Unclear"和"Nuclear ...
- C语言 · 字符转对比
问题描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等.比如 Beijing 和 Hebei 2:两个字符串不仅长度相 ...
- JAVA语言中的修饰符
JAVA语言中的修饰符 -----------------------------------------------01--------------------------------------- ...
- Atitit 项目语言的选择 java c#.net php??
Atitit 项目语言的选择 java c#.net php?? 1.1. 编程语言与技术,应该使用开放式的目前流行的语言趋势1 1.2. 从个人职业生涯考虑,java优先1 1.3. 从项目实际来 ...
- 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】
说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/LoTQQLogin ————————— ...
- InstallShield 脚本语言学习笔记
InstallShield脚本语言是类似C语言,利用InstallShield的向导或模板都可以生成基本的脚本程序框架,可以在此基础上按自己的意愿进行修改和添加. 一.基本语法规则 ...
- 用C语言封装OC对象(耐心阅读,非常重要)
用C语言封装OC对象(耐心阅读,非常重要) 本文的主要内容来自这里 前言 做iOS开发的朋友,对OC肯定非常了解,那么大家有没有想过OC中NSInteger,NSObject,NSString这些对象 ...
随机推荐
- 大约php,mysql,html数字寻呼和文本分页2分页样式供大家参考
做盗版.转载请添加源http://blog.csdn.net/yanlintao1 请勿盗版,转载请加上出处http://blog.csdn.net/yanlintao1 首先进行样式展示希望对大家有 ...
- 确保Zend Studio最佳性能的10点建议
作为一个PHP开发人员,你需要知道使用Zend Studio时,什么应该做,什么要避免.就像Roy Ganor说的那样“你必须掌握的你IDE”.从IDE角度来看,建立PHP项目时,了解Zend Stu ...
- Visual Studio 2015 & C#6.0 试用报告,持续更新。
昨天早上看到了.net开源的消息,我是非常兴奋的,毕竟局限于Windows的.NET经常被人唾弃.VB暂且不提,C#常年被人指责跨平台性不佳,我也是无能为力.即使有Mono等第三方跨平台工程,.NET ...
- LeetCode之Min Stack
1.原文问题描述: Design a stack that supports push, pop, top, and retrieving the minimum element in constan ...
- 一步一步实现基于Task的Promise库(五)waitFor和waitForAny的实现
在实现waitFor方法之前,我们先要搞明白下面这些问题: 1. waitFor方法的形参有限制吗? 没有!如果形参是Task类型,不应该启动Task,如果是function类型,会执行方法.所以wa ...
- MVC框架的插件与拦截器基础
自制MVC框架的插件与拦截器基础 上篇谈到我自己写的MVC框架,接下来讲讲插件及拦截器! 在处理一些通用的逻辑最好把它封装一个插件或者拦截器,以便日后可以直接拿过来直接使用.在我的框架中可以通过继承以 ...
- 一键部署mono 免费空间
一键部署mono 免费空间支持c# 再也不担心伙食费换空间了 一直以来 部署mono 都是很头疼的事情 因为是我在是不熟悉非win环境,今天偶然发现这个项目,挺好的,分享下 https://githu ...
- 逐步在Windows上结合CopSSH + msysGit安装安装Git Server同时集成Git使用Visual Studio
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
- HTML页面规范分解
百度,淘宝,腾讯三大巨头HTML页面规范分解 [兼容html5方案] 百度贴吧,百度图片的实现 <!--[if lt IE 9]> <script> (function() ...
- sequence diagram
[UML]UML系列——时序图(顺序图)sequence diagram 系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.exte ...