3.变量常量和数据类型

1常量

1)整形常量如:1000,123,-435都是。

2)实型常量有两种表示形式:一种是十进制小数形式,由数字和小数点组成,如123.456,0.345;一种是指数形式,如12.34e3(代表12.34*10的三次方),345.5e-5(代表345.5*10的负五次方)。由于在计算机输入或输出无法表示上角或下角,故规定以字母e或E代表以10为底的指数。

注:e或E之前必须有数字,且e或E之后必须为整数。

3)字符常量:一种是普通字符,由单撇号括起来的一个字符,注意字符常量只能是一个字符。一种是转义字符,如\n代表换行,\t代表水平制表符,\r代表回车等。

4)字符串常量:用双撇号把若干个字符括起来。

注意:不能用单撇号,单撇号里面只能包含一个字符。

5)符号常量:用#define指令指定一个符号名称代表一个常量。如#define PI 3.1416 //注意行末没有分号。

注:由于符号常量不占内存,只是一个临时符号,所以不能对符号常量辅以新值。为与变量名相区别,习惯上使用大写表示。


2.变量

变量名实际上是以一个名字代表的一个存储地址。从变量中取值实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。


3.常变量

const int a =3;

常变量与常量的不同是:常变量具有变量的基本属性,有类型,占存储单元,只是不允许改变其值。可以说常变量是有名字的不变量,而常量是没有名字的不变量。有名字便于在程序中引用。


4.数据类型

1)整型类型:基本整型(int),短整型(short int),长整型(long int),双长整型(long long int),字符型(char),布尔型(bool)。

2)浮点类型:单精度浮点型(float),双精度浮点型(double),复数浮点型(float_comple,double_comple,long long_comple)。

3)枚举类型:(enum)

4)空类型:(void)

5)派生类型:指针类型(*),数组类型([]),结构体类型(struct),共用体类型(union),函数类型。


5.整型数据的存放方式

一个基本整型(int)类型在Visual C++分配的是4个字节(32位)。在存储单元中的存储方式是用整数的补码形式存放。一个正数的补码是此数的二进制形式。一个负数的补码我们要先求出绝对值负数的二进制数,然后逐一取反,最后加1。

在存放整数的存储单元中,最左边的一位用来表示符号,0表示正数,1表示负数。

由此可见,一个基本整型的最大值为2的31-1,最小值为-2的31次方。

由于有时候我们遇到的值不可能出现负数,所以我们可以加上修饰符 unsigned,表示无符号类型 ,即以二进制保存的时候,最左边的数字不再表示符号了。默认值是signed。

对于无符号整型数据,我们用“%u“的格式输出。


6.字符变量

字符变量用类型符”char“定义。

在输出的时候,我们可以选择用十进制整数形式输出或以字符形式输出。如:

char a = '?';

printf("%d %c",a,a); // 输出63 ?  ,一个代表ASCII代码,一个是字符串值。

注:这里只针对的是单个字符,是用单引号包含一个字符。而不是双引号包含字符串。


字符串变量

   定义字符串一般用char abc[n]表示定义一个字符串abc并且长度为n。如果不给长度n的话,我们必须要给它一个初始值,例如char abc[]="xiao" 。

   scanf和printf的格式化标识是:“%s”。


7.浮点数类型

浮点数类型包括float(单精度浮点型4字节),double(双精度浮点型8字节),long double(长双精度浮点型16字节)。

float类型。编译系统给每一个float型变量分配4个字节,数值以规范化的二进制数指数形式存放在存储单元中。在存储中,系统将实型数据分为小数部分和指数部分两个部分分别存放。小数部分的小数点前面数位0。

如果对精度要求不是很高,我们可以在末尾加上专用字符,强制指定类型。如:

float a = 3.14159f; //按单精度浮点常量处理

long double a = 1.23L ; //按long double处理

如果要打印的单精度浮点数printf("%f"),如果打印双精度浮点数printf("%lf");

如果在打印的时候”%f“转换成了”%7.2f“表示指定数据共占7列,其中小数占2列。


8.强制类型转换运算符

表现形式为(类型名)(表达式)

如:(double)a  , (int)(x+y) //将x+y的值转换成int类型


9.有关数据输入输出的概念

C语言函数库中有一批"标准输入输出函数"。其中有:putchar(输出字符),getchar(输入字符),printf(格式输出),scanf(格式输入),puts(输出字符串),gets(输入字符串)。


10.#include包含方法

有两种#include的包含方法。如#include <stdio.h>和#include "stdioh" 。

两者的区别在于<>里面的包含会直接寻找系统库函数,而" "里面的包含会现寻找用户自定义的函数库,如果没找到再去寻找系统函数库。


11.printf输出格式字符

1)”d“格式符:用来输出一个有符号的十进制整数,可以在格式声明中指定输出数据的域宽(所占的列数),如用”%5d“指定输出数据占5列。”%ld“中的l代表(long)。

2)”c“格式符:用来输出一个字符。也可以指定域宽(所占的列数)。一个整数如果在0~127范围中,则用%c会输出字符。如果大于127,则只会考虑该值的最后一个字节,即二进制里面最右边的8位。

3)”s“格式符:用来输出一个字符串。

4)”f“格式符:用来输出实数(单,双精度),以小数形式输出。有几种用法:

   a)基本型,用%f,不指定输出数据长度,系统处理的方法一般是:实数中的整数部分全部输出,小数部分输出6位。

   b)指定数据宽度和小数位数,用%m.nf。表示输出数据一共有m列,其中小数占有n列。

注意:用%f输出时,只能保证6位有效数字。double型数据能保证15位有效数字。

   c)输出的数据向左对齐,用%-m.nf。作用于%m.nf基本相同,但当数据长度不超过m时,数据向左靠,右端补空格。

   d)e格式符,用格式声明%e指定以指数形式输出实数。

注:如果想输出%,则应该用连续两个%表示。


12.scanf输入数据

基本与printf一样。


13.putchar(char)函数,输出字符。如果想要用putchar函数输出例如换行符\n等,必须要使用单引号。


14.getchar()函数,输入字符,该函数没有参数,它的作用是从计算机终端输入一个字符,即计算机获得一个字符。如果要得到多个字符,就必须要使用多次getchar()。

如:a=getchar();

      b=getchar();

      putchar(a);

      putchar(b);

注:getchar函数不仅可以从输入设备获得一个可显示的字符,而且可以获得在屏幕上无法显示的字符,如控制字符。例如你按了Enter键后,可以将它传给getchar()的变量值。

如果要输出getchar获得的值,我们也可以不赋给变量直接输出。

例如:putchar(getchar());

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值