深入了解C++数据类型

开课吧小一2021-06-18 18:04

    一般来说想要成为优秀的C++开发工程师,必然需要了解清楚C++的数据类型以及其他基础信息。那么C++数据类型包括哪些呢?

深入了解C++数据类型

    1、文字常量:

    C++预定义了一组数值数据类型,可以用来表示整数、浮点数和单个字符。此外,还预定义了用来表示字符串的字符数组。

    字符型char,通常用来表示单个字符和小整数。占一个字节(byte)。

    整型int、短整型short、长整型long,它们分别代表不同长度的整数值。short占2个字节,int占4个字节,long占8个字节。

    浮点型float、双精度double和长双精度longdouble,分别表示单精度浮点数、双精度浮点数和扩展精度的浮点数值。float占4个字节,double占8个字节,longdouble占16个字节。

    当一个数值,例如0,出现在程序中时,它被称为文字常量(literalconstant):

    称之为“文字”是因为我们只能以它的值的形式指代它。

    称之为“常量”是因为它的值不能被改变。

    文字变量是不可寻址的(nonaddressable),它的值也是存储在机器内存的某个地方,但没办法访问它们的地址。

深入了解C++数据类型

    2、变量:

    变量提供了一个有名字的内存存储区,可以通过程序对其进行读、写和处理。C++中的每个符号变量都与一个特定的数据类型相关联,这个类型决定了相关内存的大小、布局、能够存储在该内存区的值的范围以及可以应用其上的操作集。

    变量名:变量的标识符(identifier),由字母、数字以及下划线字符组成。

    必须以字母或下划线开头;

    区分大小写字母;

    变量名不能用C++关键字;

    对象的定义:

    一个简单的对象定义由一个类型指示符后面跟一个名字构成,以分号结束。

double salary;
double wage;
int month;
int day;
int year;
unsigned long distance;

    当同类型的多个标识符被定义的时候,在类型指示符后面跟一个由逗号分开的标识符列表。列表可跨越多行,最后以分号结束。

double salary, wage;
int month,day, year;
unsigned long distance;

    一个简单的定义指定了变量的类型和标识符,它并不提供初始值。如果一个变量在全局域(globalscope)内定义,系统会保证给它提供初始值0。

    如果变量是局部域(localscope)内定义或通过new表达式动态分配的,则系统不会向它提供初始值0,这些对象被称为是未初始化的(uninitialized),与它关联的内存区中含有一个随机位串。

    3、指针类型:

    指针持有另一个对象的地址,使我们能够间接的操作这个对象。每个指针都有一个相关的类型。

    指针的定义:

    通过在标识符前加一个解引用操作符(*)来定义指针。在逗号分隔的标识符列表中,每个将用作指针的标识符前都必须加上解引用操作符(*)。

long *lp, lp2;

    lp是一个指向long类型对象的指针,而lp2则是一个long型的数据对象,不是指针。

int ival = 1024; 
int *pi = 0; // pi被初始化为"没有指向任何对象"
int *pi2 = &ival; // pi2被初始化为ival的地址
pi = pi2; // pi和pi2现在都指向的ival的地址
pi2 = 0; // 现在pi2没有指向任何对象
pi = ival; // 错误:pi被赋以int值ival
*pi = 10; //解除pi的引用,为它所指向对象ival,赋值

    4、const限定修饰符:

    const把一个对象转换成一个常量(constant),在程序中任何改变这个值的企图都将导致编译错误。因此,它被称为是只读(read-only)。

const int bufSize = 512;
bufSize = 0;  //错误: 企图写入const对象

    因为常量在定义后就不能被修改,所以它必须被初始化。未初始化的常量定义将导致编译错误。

const double pi;    //错误: 未初始化的常量

    const对象的地址只能赋值给指向const对象的指针。但是,指向const对象的指针可以被赋以一个非const对象的地址。

const double *pc = 0;
const double minWage = 9.60;
pc = &minWage;  //ok: 不能通过pc修改minWage
double dval = 3.14;
pc = &dval; //ok: 不能通过pc修改dval值,虽然dval本身不是一个常量
dval = 3.14159; //ok
*pc = 3.14159; //错误

    在实际的程序中,指向const的指针常被用作函数的形式参数。它作为一个约定来保证:被传递给函数的实际对象在函数中不会被修改。

int strcmp(const char *str1, const char * str2);

    以上就是开课吧广场小编为大家整理的“深入了解C++数据类型”一文,更多相关信息尽在开课吧广场C/C++教程频道。

相关推荐:

2021大厂高频面试题精选,0元免费领

福利来袭,C++经典项目实战免费领取!

职场进阶必备,数据分析职业能力特训营

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享