您的位置:首页 > 编程语言 > C语言/C++

【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)常用的格式控制符



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
,
逗号运算符
表达式,表达式,…
左到右
从左向右顺序运算

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运算符
单目运算符,计算常量或者变量的占用内存空间的字节数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: