C语言基础_2
scanf函数可以从键盘上读取数据并记录到变量中。为了使用这个函数也需要在文件开头使用如下的预处理指令
#include <stdio.h>
scanf函数使用的时候所需要的初始数据和printf函数非常类似。它同样也支持多种占位符。
char类型可以表示256个不同的整数,在我们的计算机上是从-128到127。这种类型的变量通常当作字符使用。
ASCII码表记录了字符和数字之间的对应关系。
'c' - 'a' 等于 'C' - 'A'
'2' - '0' 等于 2 - 0
unsigned char类型表示无符号字符,它的范围是0到255。
sizeof关键字可以用来计算一个数据类型或者一个变量所占空间大小是多少个字节。sizeof关键字可以用于对一个表达式的计算结果求大小,但是这个表达式在运行过程中不会真正被执行。
short,unsigned short 表示2的16次方个不同的整数
int, unsigned int 表示2的32次方个不同的整数
long, unsigned long 表示2的32次方个不同的整数
(具体看不同机器)
unsigned char 占位符是%hhu
short 占位符是%hd
unsigned short占位符是%hu
unsigned int 占位符是%u
long 占位符是%ld
unsigned long 占位符是%lu
float是单精度浮点数,double是双精度浮点数
float 占位符是%f或%g
double 占位符是%lf或%lg
计算机使用一组0和1来表示所有数字,这种方式叫做二进制。每个字节由8个二进制数位构成,每个字节所表示的数字由其中每个数位上的1转换成10进制以后求和得到。每个字节中的八个数位从右到左进行编号,编号从0开始,每个数位上的1转换成十进制就是2的编号次方。
01100111 = 2^6 + 2^5 + 2^2 + 2^1 + 2^0 = 103
十进制转换二进制
87 = 2^6 + 2^4 + 2^2 + 2^1 + 2^0 =
01000000 + 00010000 + 00000100 + 00000010 + 00000001 = 01010111
计算机内部以补码方式记录所有数字的二进制形式。非负数的补码就是原码。负数的补码是正数的补码按位求反再加一得到的。
31的补码是00011111,按位求反后得到11100000,再加一以后得到11100001,这就是-31的补码。最高一位是1后面都是0表示这个类型的最小整数。
数字补码的最左位又称为符号位,0表示数字非负,1表示数字是负的。
把二进制数字从右向左每三位一组,每组使用一个0到7之间的数字代替得到的结果叫做八进制。
把二进制数字从右向左每四位分成一组,每组使用0到9以及a到f中的一个来表示得到的结果叫做十六进制。
单目运算符是只需要一个数字就可以完成的计算。
双目运算符是需要两个数字才能完成的计算。
三目运算符是需要三个数字才能完成的计算。
+,-,*,/,%分别代表加,减,乘,除以及取余的计算。
赋值运算符用于对变量赋值,可以和其他运算符合并成为复合运算符(参考例子)
++(自增运算符)和--(自减运算符)都是单目运算符,可以对变量内容进行加一,减一操作。他们既可以放在变量名前面也可以放在变量名后面。不要在同一条语句中对同一个变量进行多次自增或自减运算,因为结果不确定。可以对浮点数进行自增或自减运算。
逻辑表达式表示一个数字的计算过程,结果只能是真(用1代表)或者假(用0代表)。逻辑表达式中使用的运算符叫做逻辑运算符。==(等于),!=(不等),>(大于),<(小于),>=(大于等于)和<=(小于等于)。
&&(与),||(或)也是逻辑运算符,他们可以把两个逻辑运算表达式并成一个。当原来的两个逻辑表达式计算结果都是真的时候用&&合并得到的结果表达式结果也是真,否则合并得到的结果表达式结果是假。只要原来的两个逻辑表达式中有一个计算结果为真则用||合并得到的结果表达式结果就是真,否则新表达式的结果就是假。
所有整数都可以当逻辑表达式使用,0表示假其他都表示真。
&&和||都具有短路特性(网上找参考练习)
!表示逻辑非,是一个单目运算符。
C语言基础_2的更多相关文章
- (cljs/run-at (->JSVM :browser) "语言基础")
前言 两年多前知道cljs的存在时十分兴奋,但因为工作中根本用不上,国内也没有专门的职位于是搁置了对其的探索.而近一两年来又刮起了函数式编程的风潮,恰逢有幸主理新项目的前端架构,于是引入Ramda. ...
- Scala语言基础
1. Scala语言的特点 a. 多范式编程语言,面向对象(抽象.封装)和函数式(过程.结果)编程 b. 代码简洁 ==>可读性较差 c. 代码会被变异成Java字节码,运行在JVM上 2. S ...
- 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...
- 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 一.SQL Server体系结构 1.1 数据库 ...
- C#语言基础
第一部分 了解C# C#是微软公司在2000年7月发布的一种全新且简单.安全.面向对象的程序设计语言,是专门为.NET的应用而开发的.体现了当今最新的程序设计技术的功能和精华..NET框架为C#提供了 ...
- C语言基础回顾
第一章 C语言基础 1. C语言编译过程 预处理:宏替换.条件编译.头文件包含.特殊符号 编译.优化:翻译并优化成等价的中间代码表示或汇编代码 汇编:生成目标文件,及与源程序等效的目标的机器语言代码 ...
- 黑马程序员_ C语言基础(二)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 概览 今天基础知识分为以下几点内容(注意:循环.条件语句在此不再赘述): 1.Hello W ...
- C#语言基础— 输入与输出
C#语言基础— 输入与输出 1.1函数的四要素:名称.输入.输出.加工 1.2主函数:输出语句.输入语句: Static viod Main(string[] stgs)//下划线部分可以自己指定 { ...
- 【GoLang】GO语言系列--002.GO语言基础
002.GO语言基础 1 参考资料 1.1 http://www.cnblogs.com/vimsk/archive/2012/11/03/2736179.html 1.2 https://githu ...
随机推荐
- ios项目接入sdk事项
使用cocos2d-x引擎创建的项目在xcode里可以看到都带有一个ios目录,把要接入的sdk的包含.framework库文件和.bundle的资源文件的父目录拖入到xcode项目里的这个ios目录 ...
- net_device 结构体分析
/* * The DEVICE structure. * Actually, this whole structure is a big mistake. It mixes I/O * data wi ...
- linux之各个文件夹作用
/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基点,比如用户user的主目录就是/home ...
- win7 下 arp 绑定mac和Ip
我们都知道直接执行arp -s 命令即可绑定IP和MAC地址,但是在Win7下会遇到不能运行arp -s 进行静态mac绑定的情况,提示“ARP 项添加失败: 拒绝访问.”(英文版提示:The ARP ...
- 通过前台选择输入用来计算圆,三角形以及长方形的面积(此题目主要是while以及if 的使用)
#!/bin/usr/env python#coding=utf-8'''完成一段简单的Python程序,用于实现计算圆面积,三角形面积,长方形面积'''flag=Truewhile flag: pi ...
- Mac OS X使用快捷键改善窗口管理的六个方法
http://www.macx.cn/thread-2085916-1-1.html 窗口全屏 ctrl+command+f
- [solr] - 数据库导入
这里使用的是mysql测试. 1.先在mysql中建一个表:solr_test 2.插入几条测试数据: 3.用记事本打solrconfig.xml文件,在solrhome文件夹中.E:\solrhom ...
- Apache Shiro 使用手册(四)Realm 实现
在认证.授权内部实现机制中都有提到,最终处理都将交给Real进行处理.因为在Shiro中,最终是通过Realm来获取应用程序中的用户.角色及权限信息的.通常情况下,在Realm中会直接从我们的数据源中 ...
- 【uTenux实验】信号量
信号量(semaphore)是一个用来指示可用的资源并将可用资源的数量以数值的形式表示出来的对象.当使用一组资源时,信号量用来实现互斥控制和同步.uTenux提供了信号量出来的API,可以很方便地使用 ...
- winform中DataGrid控件的宽度设置
最近修改一个win5.0的PDA程式,碰到一个问题.就是给DataGrid控件绑定数据的时候,这个控件的宽度不能调整,有时候数据较长,就显示不全.然后想在程式里自定义它的宽度,设置不成功.然后网上没找 ...