C语言数据类型和变量(一)

本文介绍了C语言中的数据类型分类,包括字符型、整型(如short、int、long和longlong)、浮点型(如float、double和longdouble),以及布尔类型。重点讲解了sizeof操作符用于计算数据类型和变量长度,以及unsigned和signed的区别。同时讨论了变量的创建规则,区分全局变量和局部变量。
摘要由CSDN通过智能技术生成

在用从C语言去解决实际问题时,往往要根据实际情况设一些变量,而声明这些变量时,首先要声明其数据类型

一.数据类型

C语言的数据类型可分为以下几类

1.字符型(char)

unsigned char    signed char

2.整型

短整型:short    unsigned short   (signed) short

整型:int   unsigned int    (signed) int

长整型:long   unsigned long    (signed) long

更长的整型:long long    unsigned long long    (signed) long long 

3.浮点型 

单精度浮点型:float  

双精度浮点型:double  

多精度浮点型:long double

4.布尔类型  _Bool

用0表示假(false),用1表示真(true)

#include<stdio.h>
#include<stdbool.h>
//使用布尔类型时要引用头文件stdbool.h
//布尔类型的取值只有两种:true 1   flase 0
int main()
{
 _Bool flag=true;
 if(flag)
   printf("hehe");
 return 0;
}

二.各种数据类型的长度

1.sizeof操作符

sizeof可以用来计算数据类型的长度,或者计算变量和表达式类型的长度,计算的结果单位是字节

sizeof得到的结果返回的类型是无符号整数,但具体是short,int还是long取决于编译器,因此将sizeof返回的结果统一命名为size_t类型,占位符用%zd

2.利用sizeof操作符计算各数据类型的长度

#include<stdio.h>
int main()
{
 printf("%zd\n",sizeof(char));
 printf("%zd\n",sizeof(int));
 printf("%zd\n",sizeof(short));
 printf("%zd\n",sizeof(long));
 printf("%zd\n",sizeof(long long));
 printf("%zd\n",sizeof(double));
 printf("%zd\n",sizeof(float));
 printf("%zd\n",sizeof(long double));

 return 0;
}

由此可见各数据类型的长度在内存中所占的字节数

3.用sizeof计算变量或表达式对应类型的长度

#include<stdio.h>
int main()
{
 int a=10;
 short b=1;
 printf("%zd",sizeof(a));
 printf("%zd",sizeof a);//计算变量类型的长度时可以不加括号
 printf("%zd",sizeof(b=a+1));
 return 0;
}

由运行结果可知,sizeof在计算表达式的长度时,只计算表达式类型所对应数据类型的长度

三.unsigned和signed

C语言中使用unsigned和signed来表示整型和字符型的有无正负

对于整型来说,一般默认是有符号(signed)的,既有正负,signed可省略不写。例如,int可直接默认为signed int。

对于字符型来说便不能进行默认,字符型char是有符号还是无符号取决于编译器

对于这两种类型所表示的数值范围来说,unsigned要比signed表示的数值范围大一倍(正数)

这是由于在计算机内存中,数据是以二进制形式存放的,而有符号的数据存储时最高一位代表着正负(1负0正),但无符号的数据就不需要如此,因此无符号比有符号的数据范围要大。

要查看各数据类型的范围,可以通过limits.h和float.h来查看

四.变量的创建和使用

在C语言中,要想声明一个变量,首先要声明它的数据类型,其次要声明它的变量名称(不能是关键字)

int a=10;//声明一个名称为a的整型变量

初始化:即在声明变量时就给变量赋值

变量的分类:全局变量和局部变量

全局变量:即在整个程序中够可以使用的变量

局部变量:即只能在该变量所在函数块中使用的变量

#include<stdio.h>
int b=1;//全局变量,在整个程序中都能使用
int main()
{
 {
  int a=10;//局部变量,只能在当前大括号内使用
 }
printf("%d,%d",a,b);
 return 0;
}

(由于a是局部变量已经失效,所以报错)

注意:当局部变量和全局变量同名时,优先使用局部变量

#include<stdio.h>
int a=100;
int main()
{
 int a=10;
 printf("%d",a);
 return 0;
}

这时就只打印局部变量的值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值