【C语言】第二篇·输入输出和运算符
2015-08-17 08:07
218 查看
一、输入输出
C语言中的主要输入输出函数printf和scanf。在使用这两个函数的时候,尽量要包含一个”stdio.h“的标准输入输出头文件。
1.printf
1)使用格式:
printf("格式控制字符串",变量列表);
2)格式控制符:
%d输出10进制整数
%f输出一个实型类型的数据,输出默认6位小数,小数部分不足为6位时,需要补0(注意:当整数部分大 于2的时候,小数部分的多余位为垃圾数据)
%c输出一个字符
%s输出一个字符串
3)域宽问题:
%md m为域宽。m为正数:左对齐;m为负数:右对齐。
%0md 不足域宽的部分补充0
2.scanf
1)使用格式:
scanf("格式控制符",地址列表);
2)常用的格式控制符
![](http://img.blog.csdn.net/20150817084600551)
3)注意事项:
(1)如果在输入时,输入了多个空格、回车、Tab都会被系统忽略
(2)连续赋值的时候,在多个控制符之间,加入一个符号作为分隔符。例如:scanf("%d,%d",&a,&b);
4)scanf运行原理:
(1)用户从键盘输入的内容,放到输入缓存区当中
(2)从缓存区逐个取变量对应的内容,如果取的内容和变量设定的类型不一样,则变量不做任何改变
3.输入输出测试:
:
二、运算符
1. 运算符优先级和结合性:
2. 逻辑运算符短路问题
1)多个逻辑 && 的时候,0 && 1 || 1=0运算结果为:0,真实的结果为:1,出现的这个现象即短路问题。
2)多个逻辑 || 的时候,1 || 0 && 0 = 1 运算结果为:1,真实结果为:0
解决办法:加括号
3. 三目运算符:
(表达式0) ? 表达式1:表达式2 (表达式0为真,返回表达式1的值;反之,返回表达式2的值)
求两数的大值: max = a>b ? a:b
4. sizeof运算符
单目运算符,计算常量或者变量的占用内存空间的字节数
C语言中的主要输入输出函数printf和scanf。在使用这两个函数的时候,尽量要包含一个”stdio.h“的标准输入输出头文件。
1.printf
1)使用格式:
printf("格式控制字符串",变量列表);
2)格式控制符:
%d输出10进制整数
%f输出一个实型类型的数据,输出默认6位小数,小数部分不足为6位时,需要补0(注意:当整数部分大 于2的时候,小数部分的多余位为垃圾数据)
%c输出一个字符
%s输出一个字符串
3)域宽问题:
%md m为域宽。m为正数:左对齐;m为负数:右对齐。
%0md 不足域宽的部分补充0
2.scanf
1)使用格式:
scanf("格式控制符",地址列表);
2)常用的格式控制符
3)注意事项:
(1)如果在输入时,输入了多个空格、回车、Tab都会被系统忽略
(2)连续赋值的时候,在多个控制符之间,加入一个符号作为分隔符。例如:scanf("%d,%d",&a,&b);
4)scanf运行原理:
(1)用户从键盘输入的内容,放到输入缓存区当中
(2)从缓存区逐个取变量对应的内容,如果取的内容和变量设定的类型不一样,则变量不做任何改变
3.输入输出测试:
#include <stdio.h> void main() { float a=83.2f; //定义单精度 char b='b'; //字符型 //字符串类型定义的两种方法 char *c="string"; //1.用指针 char d[10]="string1";//2.使用数组 float f1=3.14159265f; float a1=1111.11111f; float b1=2222.22222f; printf("a=%f\n",a); //正常输出 printf("a=%6.2f\n",a); //保留两位小数 printf("a=%-6.2f\n",a);//保留两位小数,共6位,不够向后面补充空格 printf("b=%c\n",b); printf("c=%s\n",c); printf("d=%s\n",d); printf("************\n"); //float 类型的变量默认输出精度为:如果小数前1位,则小数点后6位,6位后面的数为无效数字 printf("f1=%f\n",f1); printf("f1=%.7f\n",f1);//小数点6位后面的数据为垃圾数据 printf("************\n"); printf("a1=%f\n",a1); printf("b1=%f\n",b1); printf("a1+b1=%f\n",a1+b1); //float 类型变量的输出精度为:除过小数点前7位有效 printf("a1+b1=%.7f\n",a1+b1); }
:
二、运算符
1. 运算符优先级和结合性:
优先级 | 运算符 | 名称或含义 | 使用形式 | 结合方向 | 说明 |
1 | [] | 数组下标 | 数组名[整型表达式] | 左到右 | |
() | 圆括号 | (表达式)/函数名(形参表) | |||
. | 成员选择(对象) | 对象.成员名 | |||
-> | 成员选择(指针) | 对象指针->成员名 | |||
2 | - | 负号运算符 | -表达式 | 右到左 | 单目运算符 |
(类型) | 强制类型转换 | (数据类型)表达式 | |||
++ | 自增运算符 | ++变量名/变量名++ | 单目运算符 | ||
-- | 自减运算符 | --变量名/变量名-- | 单目运算符 | ||
* | 取值运算符 | *指针表达式 | 单目运算符 | ||
& | 取地址运算符 | &左值表达式 | 单目运算符 | ||
! | 逻辑非运算符 | !表达式 | 单目运算符 | ||
~ | 按位取反运算符 | ~表达式 | 单目运算符 | ||
sizeof | 长度运算符 | sizeof 表达式/sizeof(类型) | |||
3 | / | 除 | 表达式/表达式 | 左到右 | 双目运算符 |
* | 乘 | 表达式*表达式 | 双目运算符 | ||
% | 余数(取模) | 整型表达式%整型表达式 | 双目运算符 | ||
4 | + | 加 | 表达式+表达式 | 左到右 | 双目运算符 |
- | 减 | 表达式-表达式 | 双目运算符 | ||
5 | << | 左移 | 表达式<<表达式 | 左到右 | 双目运算符 |
>> | 右移 | 表达式>>表达式 | 双目运算符 | ||
6 | > | 大于 | 表达式>表达式 | 左到右 | 双目运算符 |
>= | 大于等于 | 表达式>=表达式 | 双目运算符 | ||
<</div> | 小于 | 表达式<表达式 | 双目运算符 | ||
<= | 小于等于 | 表达式<=表达式 | 双目运算符 | ||
7 | == | 等于 | 表达式==表达式 | 左到右 | 双目运算符 |
!= | 不等于 | 表达式!= 表达式 | 双目运算符 | ||
8 | & | 按位与 | 整型表达式&整型表达式 | 左到右 | 双目运算符 |
9 | ^ | 按位异或 | 整型表达式^整型表达式 | 左到右 | 双目运算符 |
10 | | | 按位或 | 整型表达式|整型表达式 | 左到右 | 双目运算符 |
11 | && | 逻辑与 | 表达式&&表达式 | 左到右 | 双目运算符 |
12 | || | 逻辑或 | 表达式||表达式 | 左到右 | 双目运算符 |
13 | ?: | 条件运算符 | 表达式1? 表达式2: 表达式3 | 右到左 | 三目运算符 |
14 | = | 赋值运算符 | 变量=表达式 | 右到左 | |
/= | 除后赋值 | 变量/=表达式 | |||
*= | 乘后赋值 | 变量*=表达式 | |||
%= | 取模后赋值 | 变量%=表达式 | |||
+= | 加后赋值 | 变量+=表达式 | |||
-= | 减后赋值 | 变量-=表达式 | |||
<<= | 左移后赋值 | 变量<<=表达式 | |||
>>= | 右移后赋值 | 变量>>=表达式 | |||
&= | 按位与后赋值 | 变量&=表达式 | |||
^= | 按位异或后赋值 | 变量^=表达式 | |||
|= | 按位或后赋值 | 变量|=表达式 | |||
15 | , | 逗号运算符 | 表达式,表达式,… | 左到右 | 从左向右顺序运算 |
1)多个逻辑 && 的时候,0 && 1 || 1=0运算结果为:0,真实的结果为:1,出现的这个现象即短路问题。
2)多个逻辑 || 的时候,1 || 0 && 0 = 1 运算结果为:1,真实结果为:0
解决办法:加括号
3. 三目运算符:
(表达式0) ? 表达式1:表达式2 (表达式0为真,返回表达式1的值;反之,返回表达式2的值)
求两数的大值: max = a>b ? a:b
4. sizeof运算符
单目运算符,计算常量或者变量的占用内存空间的字节数
相关文章推荐
- C语言中的字符串
- C语言各种关键字
- C++容器vector的调用
- 使用正则表达式解析一般sql语句(C++)
- C语言中的dirent.h说明
- poj3984广搜c语言
- 关于 c#调用c++ 出现异常System.StackOverflowException 的问题
- C,C++宏中#与##的讲解
- C语言基础学习——第2天(语句)
- Vanya and Books
- C++编译和链接过程的详解
- c++中几种0值的比较问题
- C++对象模型——new 和 delete 运算符(第六章)
- C/C++编译链接过程详解
- 归并排序的C++实现
- c语言中对字符串进行处理的函数
- C语言中二级指针的用处
- VS2010 C++编译报错LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- 冈萨雷斯数字图像处理中科院&电子科大halcon/C++/Opencv视频教程下载
- 函数指针C++和回调函数