前言
一、类型转换
分类:1.自动类型转换、在运算时不必用户干预,系统自动进行的类型转换 2.强制类型转换、当自动类型转换不能实现目的时,可以用强制类型转换
自动类型转换分为赋值转换和运算转换
赋值转换规则: 浮点型赋值给整型,结果将舍弃浮点数小数部分。 整数赋值给浮点数,数值不会发生变化,结果以浮点数的方式存在 字符型赋值给整型,数值不会发生变化,但以整型的方式存储,内存空间更大 整型赋值给字符型,只把整型变量低8位赋值给字符型变量 双精度浮点数赋值给单精度浮点数,有效位会减少,丢失的部分四舍五入
例:
#include "stdio.h"
{ int i=257;
char ch=i;
int i=3,1415;
printf("%d,%d",ch,i);
}
分别输出1、3
运算转换: C语言允许整形、实型、字符型数据进行混合运算。在进行运算时,不同类型的数据要先转换成同一类型,然后再进行运算。 转换按数据占用字节数增加的方向转换,例如int类型和short类型的变量进行计算时会把short类型转换成int类型之后再进行计算 浮点数运算都是按照双精度进行的,float类型的变量会转换成double类型再进行计算 运算特点:由数值存储位数少的向多的转换
例:
#include "stdio.h"
int main( )
{ char ch='a';
int i=13;
float x=1.25;
double y=8.00;
printf("%f",i+ch+x+y);
}
结果为120.000000
强制类型转换 强制类型转换是由程序员通过类型说明符实现的,通过强制类型转换可以将一种类型的变量强制转化为另一种类型。 (类型说明符)【表达式】
注:类型说明符和表达式都必须加括号,如果表达式是单个变量则可不加 无论是强制类型转换还是自动类型转换,都不改变其原变量的数据类型。
二、printf
printf输出语句的格式规定:
printf(格式控制,输出表列) (1)"格式控制"是用双引号括起来的一个字符串,称为格式控制字符串,简称格式字符串包括: 1.格式声明:由%和格式字符组成。作用是将输出的数据转换为指定的格式后输出。 2.普通字符:即需要在输出时原样输出的字符。 (2)输出表列是程序需要输出的一些数据,可以是常量、变量或表达式 例: printf(“a=%d,b=%c\n”,i,c0 意为:将输出列表中变量按照输出列表写定的顺序以双引号中给定的格式控制方式输出
三、scanf
scanf输入语句:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。 按照指定的格式规范输入数据 例:scanf(“a=%f,b=%f,c=%f”,&a,&b,%c); //双引号内为格式控制(普通字符+格式声明)逗号后为地址列表 &是一个取地址运算符,&后面加变量名表示“该变量的地址”,&i表示变量 i 的地址
# include <stdio.h>
int main
{
int i;
scanf("%d", &i);
printf("i = %d\n", i);
return 0;
}
scanf (格式控制,地址列表) 1).格式控制同上printf 2).地址表列是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址 3).格式控制的两边必须用引号 4).scanf函数没有计算功能 输入多个整型数据或实型数据时,可用空格、回车或制表符怍间隔 输入多个字符型数据时,数据间不可使用分隔符 若指定了输入数据的宽度,则系统自动按其截取所需数据。 %后面加*表示跳过相应的数据接收。
注:输入控制符和输入参数无论在顺序上还是在个数上一定要一一对应 scanf 中双引号内多个输入控制符之间不加逗号
四、putchar
putchar(ch) 用于将一个字符输出到显示器上显示,括号内参数为单个字符 注:一般调用格式:putchar(ch) 头文件#include"stdio.h" 例:
#include "stdio.h"
int main()
{ char a,b,c;
a='B'; b='O' c='Y';
putchar(a);
putchar(b);
putchar(c);
putchar('\n');
|