C语言数据类型

整数(short,int,long)

一位是一bit,八位是一字节,字的长度要针对具体的机器环境。
int一般占用四个字节,即32位,在int前面加short/long,可以占用更少/更多的内存,short占用2个字节,long一般占用4或6或8个字节。

short int a = 1;
short int b, c = 9; 
long int m = 112633; 
long int n, p = 762331; 

也可以省略int,如:

short a = 1; 
short b, c = 9; 
long m = 112633; 
long n, p = 762331

对于三种类型的变量所占内存大小在不同机器上可能有所不同。

  • short 至少占用 2 个字节。
  • int 建议为一个机器字长。32 位环境下机器字长为 4 字节,64 位环境下机器字长为 8 字节。
  • short 的长度不能大于 int,long 的长度不能小于 int。

还可以在前加unsigned表示其为无符号数(不加unsigned默认为有符号数),可以将变量范围扩大一倍,但其所占内存大小不变,不过只能为正数。

  unsigned short a = 12;
  unsigned int b = 1002;
  unsigned long c = 9892320; 

在64位Windows系统中,short是2位,int和long均为4位。
注:可以使用sizeof操作符获得某个数据类型的长度。

注意取余%只能对整数进行运算,且余数为正为负,由 % 左边的整数决定:

  • 如果 % 左边是正数,那么余数也是正数; 
  • 如果 % 左边是负数,那么余数也是负数。
/*
100%12=4 
100%-12=4 
-100%12=-4 
-100%-12=-4 
 */
 

小数(float,double)

小数长度是固定的,float是4个字节,double是8个字节

long a = 100;
int b = 294float x = 52.55;
double y = 18.6; 

整数默认为int,小数默认为double,即给a赋值时,先要将int型的100转换为long型,然后再赋给a;给x赋值时,要将double型的52.55先转换为float型,然后赋给x。
进行整型和浮点型数据运算时,要特别注意,小数赋给整型变量会丢掉后面的小数部分,同时要特别注意通过运算给浮点型变量的赋值,如:

float a;
float b;
float c;
a=1/3;
b=1.0/3;
c=1/3.0;

上面的代码,最后a的值会是3,后面的小数部分会舍弃掉,而b和c才会正确得到我们想要的值,1.0/3和1/3.0算出来是double型的。

字符与字符串(char)

char的长度为一个字节。
正确赋值:(单引号,ASCⅡ包含的字符)

char a = '1';
char b = '$';
char c = 'X';

char与整数有一定的联系,可以有如下的赋值:(相应的字符和其ASCⅡ码对应)

char a = 70; //即char a = 'F';
int b = 'H'; //即int b = 72;

实际上字符和整数都是以整数形式存储的。

下面是两种字符串的定义方式:

char str1[] = "skgb";
char *str2 = "skgb";

类型强制转换

#include <stdio.h>
int main()
 {
int sum = 22;  //总数
int count = 7;  //数目 
double average;  //平均数
average = (double)sum / count;
return 0; 
}

(double)sum将sum强制转化为double型,再与count运算,最后得到double型的结果,这样就不会失真,若不要(double),average得到的结果将是3,即将后面的小数舍掉了。强制转换仅在此次运算中生效,并不会改变原有的数据类型,即sum仍然为int型。
注意:不能写成这样:

average = (double)(sum / count);

这样得到的结果仍然会是3。
附优先级:
赋值运算符(=) < ||<&& < 关系运算符 < 算术运算符 < 非(!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值