C语言的数据类型

变量与常量数据

在程序的世界中,可以让计算机按照指令做很多事情,如进行数值计算、图像显示、语音对话、视频播放、天文计算、发送邮件、游戏绘图以及任何我们可以想象到的事情。要完成这些任务,程序需要使用数据,即承载信息的数字与字符。 在计算机中,数据的性质和表示方式可能不同。所以需要将相同性质的数据归类,并用一定数据类型描述。任何数据对用户都呈现常量和变量两种形式。常量是指程序在运行时其值不能改变的量。常量不占内存,在程序运行时它作为操作对象直接出现在运算器的各种寄存器中。变量是指在程序运行时其值可以改变的量。变量的功能就是存储数据。 例子:

#include<stdio.h>
int main()
{
int year;
year=2014;
printf("Welcome to www.clang.cc!\n");
return 0;
}

其中year是一个int类型的变量,而2014是常量,即一个数字。 变量的定义: 在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。 C规定,标识符只能是字母(A~Z,a~z)、数字(0~9)、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。且不能与C语言的关键字重名(关键字见下一节)。 此外,在使用标识符时还必须注意以下几点:   (1)标准C不限制标识符的长度,但它受各种版本的C 语言编译系统限制,同时也受到具体机器的限制。例如在某版本C 中规定标识符前八位有效,当两个标识符前八位相同时,则被认为是同一个标识符。   (2)在标识符中,大小写是有区别的。例如CLANG和Clang 是两个不同的标识符。   (3)标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便阅读理解,做到“顾名思义”。

数据类型和关键字

在程序的世界中,承载一系列的信息的数字和字符都属于数据类型,但计算机需要一种方法来区别和使用这些不同的类型。具体的,C通过识别一些基本的数据类型做到这些。如果是常量数据,编译器一般通过其书写来辨认其类型,比如:123是整数,3.14浮点数(即小数)。而变量则需要在声明语句中指定其类型,稍后会做详细介绍。我们先了解C语言的基本数据类型。

基本数据类型

C语言的基本数据类型为:整型、字符型、实数型。这些类型按其在计算机中的存储方式可被分为两个系列,即整数(integer)类型和浮点数(floating-point)类型。 这三种类型之下分别是:short、int、long、char、float、double 这六个关键字再加上两个符号说明符signed和unsigned就基本表示了C语言的最常用的数据类型。 下面列出了在32位操作系统下 常见编译器下的数据类型大小及表示的数据范围:

类型名称

占字节数

其他叫法

表示的数据范围

char

1

signed char

-128 ~ 127

unsigned char

1

none

0 ~ 255

int

4

signed int

-2,147,483,648 ~ 2,147,483,647

unsigned int

4

unsigned

0 ~ 4,294,967,295

short

2

short int

-32,768 ~ 32,767

unsigned short

2

unsigned short int

0 ~ 65,535

long

4

long int

-2,147,483,648 ~ 2,147,483,647

unsigned long

4

unsigned long

0 ~ 4,294,967,295

float

4

none

3.4E +/- 38 (7 digits)

double

8

none

1.7E +/- 308 (15 digits)

long double

10

none

1.2E +/- 4932 (19 digits)

在认识了这么多的数据类型之后,我们就可以根据不同的实际情况,在不同的问题中选择最符合的数据类型来使用。举个例子,如要计算两个数的和,我可以采用int类型定义两个变量,然后输出

int a=24000,b=12345;//定义两个变量a,b并赋值

int c; //定义变量c用于计算a+b的和

c=a+b;

printf("a+b = %d",c);//输出结果

没错,可能您已经考虑到,如果a+b的和超出int类型的最大范围时的问题。这个就需要您根据不同的作用选择不同的数据类型存储了。

关键字

在c语言中,为了定义变量、表达语句功能和对一些文件进行预处理,还必须用到一些具有特殊意义的字符,这就是关键字,我们用户自己定义的变量函数名等要注意不可以与关键字同名。

C语言中的32个关键字

auto

double

int

struct

break

else

long

switch

case

enum

register

typedef

char

extern

return

union

const

float

short

unsigned

continue

for

signed

void

default

goto

sizeof

volatile

do

if

static

while


本文分享自微信公众号 - 编程范(dotcpp)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-12-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【优秀题解】题解 1178: 三进制小数

    你的任务呢,是将一个有理数转换成三进制小数。“什么是三进制小数呢?”你一定会问,这很明白,就是以三为基(二进制数以2为基,而十进制数则以10为基)的小数。

    编程范 源代码公司
  • 【每日一题】问题 1650[蓝桥杯][算法训练VIP]猴子分苹果

    题目描述 秋天到了,n只猴子采摘了一大堆苹果放到山洞里,约定第二天平分。这些猴子很崇拜猴王孙悟空,所以都想给他留一些苹果。第一只猴子悄悄来到山洞,把苹果平均...

    编程范 源代码公司
  • 【优秀题解】蓝桥杯ACM输入输出问题的

    背景,对于参加蓝桥杯ACM竞赛的同学,输入输出很常见, 咱们网站(www.dotcpp.com)1562这个题对于这道题目 用cin,cout来进行输入输出的操...

    编程范 源代码公司
  • 聊聊debezium的RecordMakers

    debezium-v1.1.1.Final/debezium-connector-mysql/src/main/java/io/debezium/connect...

    codecraft
  • 聊聊debezium的RecordMakers

    debezium-v1.1.1.Final/debezium-connector-mysql/src/main/java/io/debezium/connect...

    codecraft
  • “配件不送,自己买”,库克还有多少种方法让苹果赚钱?

    每年苹果发布新机的时候,有人夸赞,有人吐槽,只不过这次的iPhone 12吐槽的人更多。

    镁客网
  • Cobalt Strike 扩展模块开发(三)终极监听器

    Erebus-CobaltStrike后渗透测试插件帮你拿到妹子shell还能搞定丈母娘

    用户2202688
  • Gin框架系列02:路由与参数

    上一节我们用Gin框架快速搭建了一个GET请求的接口,今天来学习路由和参数的获取。

    平也
  • SpringCloud-Eureka【入门案例】

      服务注册中心是服务实现服务化管理的核心组件,类似于目录服务的作用,主要用来存储服务信息,譬如提供者 url 串、路由信息等。服务注册中心是 SOA 架构中最...

    用户4919348
  • 【行业】从自动驾驶到语音识别,算法已经“侵入”我们的生活了

    在2018年,算法将越来越多地影响我们生活的方方面面,从语音识别到自动驾驶汽车等。但是人类很难理解这种抽象。伦敦艺术与技术工作室FIELD的创意总监Marcus...

    AiTechYun

扫码关注云+社区

领取腾讯云代金券