数据和C。

c语言的数据类型关键字

最初    c90添加  c99添加

char    signed   -Bool

int     void    -Complex

short          -Imaginary

long

unsigned

float

double

int类型
有符号整型,值是整数,正整数,负整数或0.

int最小取值范围为-32768–32767

声明int变量:int erns; int cows;

声明创建了变量,如何获得值?

1,赋值  cows=112;

2,通过函数获得(如scanf()获得)

3,初始化变量

C语言中,初始化可以直接在声明中完成。

int hogs=21;  int cow=32;

八进制和十六进制

在C语言中,用特定的前缀表示使用哪种进制。

0x和0X表示十六进制值,如16表示成0x10或0X10。

o前缀表示八进制,如16表示成o20。

显示八进制和十六进制。 (转换说明)

以十进制,使用%d.八进制,使用%o.十六进制,使用 %x.

若要显示前缀,用%#o, %#x。

打印short,long,long long 和unsigned

unsigned int 使用%u

long,使用%ld

若系统中int 和long大小相同,使用%d就行。

%lx是十六进制格式打印long类型,%lo表示八进制long类型。

short类型用 %hd %ho。

char 类型
用于存储字符(字母或标点符号),从技术层面看,char是整数类型。

1,声明char 类型变量。

    与其他相同 eg: char ch;

2,字符常量和初始化

      eg:char grade='A';

用单引号括起来的单个字符称为“字符常量”,单引号叫定界符。

3,非打印字符

单引号只适用于字符,数字和标点符号。

C语言提供以下方法表示这些代表行为的字符

第一,ASCII码。

如,蜂鸣字符的ASCII码值是7. char beep=7;

第二,使用转义序列

把转义序列字符赋给字符变量时,必须用单引号把转义序列括起来

char nerf=’\n’;

常用的转义序列

\a-警报  \b-退格  \f-换页  \n-换行  \r-回车  \t-水平制表符  \v-垂直制表符

\-反斜杠(\)  '-单引号  "-双引号  ?-问号  \o00八进制值  \xhh-十六进制

4,非打印字符
printf()函数用%c指明待打印的字符。
一个字符变量实际上被存储为1字节的整数值。因此,如果用%d转换说明打印char类型变量的值,打印的是一个整数。而%c转换说明告诉printf()打印该整数对应的字符。

5,有符号还是无符号
有些C编译器把char实现为有符号类型,意味着char可表示的范围是 -128~127。而无符号char表示的范围为0 ~ 255。

_Bool类型
即逻辑值 true and false. 1代表true,0 代表false,原则上只占用一位存储空间。

float, double和 long double
面向金融和数学的程序经常使用浮点数
C标准规定,float类型必须至少能表示6位有效数字。例如,33.333333的前六位数字,而不是精确到小数点后六位数字。通常,系统存储一个浮点数要占用32位,其中8位用于表示指数的值和符号,剩下的24位用于表示非指数部分及其符号。

C语言提供的另一种浮点类型是double(意为双精度)。一般情况,double占64位。double类型的值至少必须有10位有效数字。

long double : C只保证long double 类型至少与double 类型的精度相同。

1,声明浮点型变量
与整型变量相同。
float num, sum;
double trouble;
float sec = 6.63e-34;
long double gnp;

2,浮点型常量
基本形式是:有符号的数字(包括小数点),后面紧跟e或E,最后是一个有符号数表示10的指数。
如:-1.6E+12 2.56e-3

正号可以省略。可以没有小数点(如2E5)或指数部分(如13.56),但是不能同时省略两者。可以省略小数部分(如3.E18)或整数部分(如, .45E-4),但是不能同时省略两者。

不要在浮点型常量中间加空格: 1.56 E+12(错误!)。

C99标准添加了一种新的浮点型常量格式-----用十六进制表示。
即在十六进制数前加上十六进制前缀(0x或0X),用p和P分别代替e和E,用2的幂代替10的幂(即,p计数法)。
如:0xa.1fp10
3,打印浮点值
printf()用 %f 打印十进制计数法的float和double类型浮点数, 用 %e 打印指数计数法的浮点数。

类型大小
sizeof 是C语言的内置运算符,以字节为单位给出指定类型大小。C99和C11提供%zd转换说明匹配sizeof的返回类型(即siz_t类型)。一些不支持C99和C11的编译器可用%u或%lu代替%zd.

/*打印类型大小*/
#include<stdio.h>
int main(void)
{
	printf("Type int has a size of %zd bytes.\n", sizeof(int));
	printf("Type char has a size of %zd bytes.\n", sizeof(char));
	printf("Type long has a size of %zd bytes.\n", sizeof(long));
	printf("Type long long has a size of %zd bytes.\n", sizeof(long long));
	printf("Type double has a size of %zd bytes.\n", sizeof(double));
	printf("Type long double has a size of %zd bytes.\n", sizeof(long double));
	return 0;
}

在这里插入图片描述
使用数据类型
编写程序时,应注意合理选择所需变量及类型。使用变量前必须先声明,并选择有意义的变量名。初始化变量应使用与变量类型相匹配的常数类型。
例如:
int apples = 3;
float pi = 3.141592653f;

把一个类型的数值初始化给不同类型的变量时,编译器会把值转换成与变量匹配的类型,这将导致部分数据丢失。例如:
int cost = 12.99 ;
float pi = 3.1415926535;
第一个声明,cost的值是12,丢弃了(截断)小数部分,不进行四舍五入。
第二个声明会损失一些精度,因为C只保证了float类型前6位的精度。

//Done!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_索伦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值