前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言中的数据类型

C语言中的数据类型

原创
作者头像
诸葛青云
修改2019-07-22 17:12:06
1.1K0
修改2019-07-22 17:12:06
举报

数据类型

1.编码规范

2.关键字

3. 标识符

4.数据类型

5. 常量

5.1 整型常量

5.2 实型常量

5.3 字符型常量

5.4 转义字符

5.5 符号常量

6.变量

7.变量的存储类别

8.混合运算

1.编码规范

代码缩进

代码缩进一般为4个字符

#include

int main(void)

{

int iResult = 0;

int i;

printf("由1加到100的结果是: ");

for(i = 1;i<100;++i)

{

iResult= i + iResult;

}

printf("%d\n",iResult);

return 0;

}

变量、常量命名规范

常量命名统一为大写格式。如果是成员变量,均以m开始。如果是普通变量,取以实际意义相符合的变量名称,然后在其前添加相关的数据类型。如果是指针,则为其标识符添加p。

#define AGE 20

int m_iAge; /*定义整型的成员变量*/

int iNumber;/*定义普通整型变量*/

int *pAge;/*定义指针变量*/

函数的命名规范

在定义函数时,函数名的首字母要大写,其后的字母大小写混合。

int AddTwoNum(int num1,int num2);

注释

尽量采用行注释

int iLong;/*长度*/

int iWidth;/*宽度*/

int iHeight;/*高度*/

2.关键字

关键字

3. 标识符

所有的标识符必须由字母或下划线开头,而不能使用数字或者符号作为开头。

在设定标识符时,除开头外,其他位置都可以由字母、下划线或数字组成。

英文字母的大小写代表不能的标识符

标识符不能是关键字

标识符的命名最好具有相关的含义。

以ANSI标准规定,标识符可以使任意长度,但外部名知识能由前8个字符唯一地区分

4.数据类型

基本类型

整型 字符型 实型 枚举类型

构造类型

构造类型包括数组类型 结构体类型和共用体类型

指针类型

指针的值表示的是某个内存地址

空类型

空类型的关键字是void

(1)对函数返回的限定

(2)对函数参数的限定

5. 常量

整型常量

实型常量

字符型常量

5.1 整型常量

整型常量就是直接使用的整型常数。整型常量可以是长整型、短整型、符号整型和无符号整型。

int long = 1000L;/*L表示长整型*/

unsigned int long =500U;/*U表示无符号整型*/

八进制整数

要使用的数据表达式形式是八进制,需要在常数前加0进行修饰。八进制所包含的数字是0~7之间的数字。

OctalNumber1 = 0123;

OctualNumber2 = 042;

十六进制整数

常量前面使用0x作为前缀,表示该常量是用十六进制表示的。十六进制中包含数字0~9以及字母A~F。

HexNumber1 = 0x123;

HexNumber2 =0x3ba4;

十进制整数

十进制是不需要在其前面添加前缀的。十进制中包含的数字是0~9。

十进制11在内存中,一个正数的补码与其源码的形式相同,一个负数的补码是将该数绝对值的二进制形式按位取反再加1

5.2 实型常量

科学计数方式:就是使用十进制的小数方法描述实型。

double SciNumber = 123.45;

double SciNumber1 =0.5458;

指数计数方式:有时候实型数字非常大或者非常小,这样的话科学计数方式是不利于观察的,此时可以使用指数方法显示。

double SciNumber = 1.234e2;

double SciNumber1 =5.452e-1;

5.3 字符型常量

字符常量:使用单直撇括起一个字符,这种形式就是字符常量。

字符常量中只能包括一个字符

字符常量是区分大小写的。

‘ ’这对单直撇代表着定界符,不属于字符常量中的一部分。#include

int main(void)

{

putchar('H');

putchar('e');

putchar('l');

putchar('l');

putchar('o');

putchar('\n');

return 0;

}

字符串常量:是用一组双引号括起来的若干字符序列。

ASCII码

5.4 转义字符

5.5 符号常量

#include

#define PAI 3.14

int main(void)

{

double fRadius;

double fResult = 0;

pintf("请输入圆的半径:");

scanf("%lf",&fRadius);

fResult = PAI*fRadius*fRadius;

printf("圆的面积是 : %lf\n",fResult);

return 0;

}

6.变量

整型变量

有符号基本整型

通常说的整型都是指的是有符号基本整型int

int iNumer;

iNumber = 10;

#include

int main(void)

{

signed int iNumber;

iNumber =10;

printf("%d\n",iNumber);

return 0;

}

无符号基本整型

无符号基本整型使用的是关键字unsigned int ,取值范围是0~4294967295

有符号短整型

有符号短整型使用的关键字是signed short int,取值范围是-32768~32767

short iShortNum;

iShortNum = 10;

无符号短整型

无符号短整型使用的是关键字unsigned short int,其中的关键字int

unsigned short iUnsignedShtNum;

iUnsignedShtNum = 0;

有符号长整型

有符号长整型使用的关键字是long int,其中的关键字int在编写的时候是可以省略的。取值范围是-2147483648~2147483647

long iLongNum;

iLongNum = 10;

无符号长整型

无符号长整型使用的关键字是unsigned long int,其中的int关键字是可以省略的。

实型变量

实型变量也称为浮点型变量,是指用来存储实型数值的变量,其中实型数值是由整数和小数部分组成的。

类型名称关键字单精度类型float双精度类型double长双精度类型long double

单精度类型

#include

int main(void)

{

float fFloatStyle;

fFloatStyle = 1.23;

printf("%f\n",fFloatStyle);

return 0;

}

//out 1.230000

双精度类型

#include

int main(void)

{

double dDoubleStyle;

dDoubleStyle = 61.458;

printf("%f\n",dDoubleStyle);

return 0;

}

//out 61.458000

长双精度类型

#include

int main(void)

{

long double fLongDouble;

fLongDouble = 46.257;

printf("%f\n",fLongDouble);

return 0;

}

//out 46.257000

字符型变量

字符型变量是用来存储字符常量的变量,实际上是将该字符的ASCII码值存储到内存单元中。

#include

int main(void)

{

char cChar1;

char cChar2;

int iInt1;

int iInt2;

cChar1 = 'a';

cChar2 =97;

iInt1 = 'a';

iInt2 = 97;

printf("%c\n",cChar1);

printf("%d\n",cChar2);

printf("%c\n",iInt1);

printf("%d\n",iInt2);

return 0;

}

/*

out

a

97

a

97

*/

7.变量的存储类别

在C程序中可以选择变量的不同存储形式,其存储类别分为静态存储和动态存储。可以通过存储类修饰符来告诉编译器处理生么样的类型变量,具体主要有自动(auto)、静态(static)、寄存器(register)和外部(extern)4种。

静态存储与动态存储

静态存储就是指程序运行分配的固定的存储方式,而动态存储则是在程序运行期间根据需要动态地分配存储空间。

auto变量

auto关键字就是修饰一个局部变量为自动的,这意味着每次执行到定义该变量时,都会产生一个新的变量,并且对其重新进行初始化。

#include

void AddOne()

{

auto int iInt1 = 1;

iInt1 = iInt1+1;

printf("%d\n",iInt1);

}

int main(void)

{

printf("第一次调用: ");

AddOne();

printf("第二次调用: ");

AddOne();

return 0;

}

/*

out

第一次调用:2

第二次调用:2

*/

static变量

static变量为静态变量,将函数的内部和外部变量声明成static变量的意义是不一样的。不过对于局部变量和auto变量相对而言的,尽管两者的作用域都是仅限于声明变量的函数之中,但是在语句块执行期间,static变量始终保持它的值,并且初始化操作只是在第一次执行时起作用。在随后的运行过程中,变量将保持语句块上一次执行时的值。

#include

void AddOne()

{

static int iInt1 = 1;

iInt1 = iInt1+1;

printf("%d\n",iInt1);

}

int main(void)

{

printf("第一次调用: ");

AddOne();

printf("第二次调用: ");

AddOne();

return 0;

}

/*

out

第一次调用:2

第二次调用:3

*/

register变量

register变量称为寄存器存储变量。使用register变量的目的在于让程序员指定把某个局部变量存放在计算机的某个硬件寄存器而不是内存中。这样做的目的是可以提高程序的运行速度。

extern变量

extern变量称为外部存储变量。extern声明了程序中将要用到但尚未定义的外部变量。一个工程由多个C文件注册地。这些源代码文件分别编译,然后链接一个可以执行的模块。

/*Extern1文件中*/

#include

int main(void)

{

extern int iExtern;

printf("%d\n",iExtern);

return 0;

}

#include

int iExtern =10;

8.混合运算

不同类型之间的混合运算。

#include

int main(void)

{

int iInt1 =1;

char cChar ='A';

float fFloat = 2.2f;

double result = iInt1+cChar+fFloat;//

printf("%f\n",result);//打印输出结果

return 0;

}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档