优秀的编程知识分享平台

网站首页 > 技术文章 正文

深入了解C++数据类型-开课吧广场(c++ 数据类型)

nanyue 2024-08-10 18:35:30 技术文章 12 ℃

一般来说想要成为优秀的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),它的值也是存储在机器内存的某个地方,但没办法访问它们的地址。

2、变量:

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

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

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

区分大小写字母;

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

对象的定义:

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

    doublesalary;
    doublewage;
    intmonth;
    intday;
    intyear;
    unsignedlongdistance;

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

    doublesalary,wage;
    intmonth,day,year;
    unsignedlongdistance;

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

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

3、指针类型:

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

指针的定义:

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

    long*lp,lp2;

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

    intival=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)。

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

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

    constdoublepi;//错误:未初始化的常量

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

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

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

    intstrcmp(constchar*str1,constchar*str2);

Tags:

最近发表
标签列表