oracle signed类型,基本数据类型

C语言有丰富的数据类型,因此它很适合用来编写数据库,如DB2、Oracle都是C语言写的。

C语言的数据类型大致可以分为下图中的几类:

28175824-a80762ff23c34ad9ac485bafe62f3ddb.jpg

一、不同编译器环境下基本数据类型的存储长度

红色的代表常用的数据类型

14152549-b92c48dad25647be8c3b0b0b9d7ca0ea.png

在64位编译器环境下,short占2个字节(16位),int占4个字节(32位),long占8个字节(64位)。世界上的编译器林林总总,不同编译器环境下,取值范围和占用的长度是不一样的,不过幸运的是,ANSI \ ISO制定了以下规则:

* short跟int至少为16位(2字节)

* long至少为32位(4字节)

* short的长度不能大于int,int的长度不能大于long

* char一定为为8位(1字节),毕竟char是我们编程能用的最小数据类型

二、变量

C语言中用变量来存储计算过程使用的值,任何变量都必须先定义类型再使用。为什么一定要先定义变量呢?因为变量的类型决定了变量占用的存储空间,所以定义变量类型,就是为了给该变量分配适当的存储空间,以便存放数据。

1.局部变量的使用跟Java稍微有点不一样

1> 在Java中,你声明了一个局部变量后,如果没有经过初始化赋值就使用该变量,编译器直接报错

14115912-99da3f5f1eb148bd8e8878af9126687c.jpg

第9行报错了,因为变量a没有初始化

2> 在C语言中,你声明看一个局部变量后,没有经过初始化赋值是可以使用的

copycode.gif

copycode.gif1 #include 

2

3 int main()

4 {

5     int b;

6     printf("%d", b);

7     return 0;

8 }

copycode.gif

copycode.gif

但这是很危险的,不建议这样做。大多数人应该觉得变量b打印出来应该是0,其实有时候不是。因为系统会随意给变量b赋值,得到的是垃圾数据。

上述代码的打印结果是:

14120334-7cfa00dff2994877bf44bdadf90db14c.png因此,局部变量还是必须先进行初始化赋值,然后再使用,这样才是最安全的做法。

* 如果是全局的int类型变量,系统会默认赋值为0

14120623-9f5627023ee04430affb72ffd926dea8.png

二、类型修饰符

即在基本数据类型的前面加一些修饰符,也有人称之为限定符

有以下4种类型修饰符:short  短型

long  长型

signed  有符号型

unsigned  无符号型

示例:

这些修饰符最常是用来修饰int类型(可以省略int)

copycode.gif1 // 下面两种写法是等价的

2 short int s1 = 1; 3 short s2 = 1; 4

5 // 下面两种写法是等价的

6 long int l1 = 2; 7 long l2 = 2; 8

9 // 可以连续使用2个long10 long long ll = 10;11 12 // 下面两种写法是等价的13 signed int si1 = 3;14 signed si2 = 3;15 16 // 下面两种写法是等价的17 unsigned int us1 = 4;18 unsigned us2 = 4;19 20 // 也可以同时使用2种修饰符21 signed short int ss = 5;22 unsigned long int ul = 5;

copycode.gif

signed代表有符号,包括正数、负数和0;unsigned代表无符号,只包括正数和0。比如,signed的取值范围是-32768~32767,那么unsigned的取值范围是0~65535,当然,不同的编译器有不同的取值范围

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值