专栏首页诸葛青云的专栏C语言中的数据类型
原创

C语言中的数据类型

数据类型

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;

}

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 手把手教你用c语言编写网络病毒

    恶意软件可能是第一个对我们产生影响的计算机安全问题.所以病毒在信息安全中是很重要的.

    诸葛青云
  • 一看就会的C语言笔记——指针函数、函数指针、回调函数

    //函数返回值必须用同类型的变量来接受,也就是说,指针函数的返回值必须赋值给同类型的指针变量。

    诸葛青云
  • C语言+图形编程——自制象棋

    用C语言做个象棋是不容易的,涉及到的知识点有很多方面,C语言里面的基本数据类型、运算符、顺序,分支,循环结构。还有运用到数组,函数,指针,以及我们的位运算等。

    诸葛青云
  • BZOJ4364: [IOI2014]wall砖墙(线段树)

    但实际上因为这题只需要输出最后的操作序列,那么我们只维护最大最小值的覆盖标记即可。

    attack
  • 【map超时】【set超时】1-5 两个有序序列的中位数 (25 分)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    韩旭051
  • 洛谷P3384 【模板】树链剖分

    题目描述 如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 操作1: 格式: 1 x y z 表示将树从x到y结点最短路...

    attack
  • Leetcode 279. Perfect Squares

    Given a positive integer n, find the least number of perfect square numbers (fo...

    triplebee
  • 4.C++中的函数重载,C++调用C代码,new/delete关键字,namespace(命名空间)

    可以看到输出结果,每个函数的入口地址都不一样(重载函数的入口地址,必须使用强制转换来获取)

    张诺谦
  • POJ 1006 Biorhythms 中国剩余定理 模版

    x%m1 = a1 ...... x%mn = an 中国剩余定理 模版题。该模版为扩展版,模数不必互质

    用户2965768
  • 洛谷P3038 [USACO11DEC]牧草种植Grass Planting

    题目描述 Farmer John has N barren pastures (2 <= N <= 100,000) connected by N-1 bidi...

    attack

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动