const char*类型的值不能用于初始化

您所在的位置:网站首页 类型的值不能用于初始化 const char*类型的值不能用于初始化

const char*类型的值不能用于初始化

2024-05-31 13:50| 来源: 网络整理| 查看: 265

C++ 数据类型

c++的数据类型和c的数据类型基本保持一致。

8b2a74436f0aec93fb32251ab8a22fc1.png

类型名字节长取值范围bool1flase,truechar1-128~127signed char1-128~127unsigned char10~255short(signed short)2-32768~32767unsigned short 20~65535int(signed int)4-2147483648~2147483647unsigned int40~4294967295long(signed long)4-2147483648~2147483647-unsigned long40~4294967295float43.410-38~3.41038double81.710-308~1.710308long double81.710-308~1.710308

    整型数据类型大小排序: bool , char , signed char,  unsigned char, short , unsigned short , int , unsigned int ,long , unsigned long , long long , unsigned long long

    浮点数排序大小:float , double , long double

    其中还有一个宽字符型 ,它是由下面方式来表示。

typedef short int wchar_t;

    从表中可以看到,c++的基本数据类型有bool,char,int,float,double等类型。除了bool类型外,可以主要分为两大类:整数和浮点数。因为char型从本质上也可以认为是整形,长度为1,存放字符的ASCII码。其中关键词unsigned 、signed、short、long,被称为修饰符。

    其中用short修饰int时,short int表示短整型,占2个字节。此时int可以省略,而long int表示长整型,占4个字节,也可以省略int。

    c++标准并没有明确规定每种数据类型的字节数与取值范围。不同的编译器对此会有不同的实现。面向32位的处理器通常将int和long两种数据类型用4字节表示,但一些面向64位的处理器,int用4字节表示,long用8个字节表示。因此,(unsigned)int 和unsigned long虽然在表中具有相同的取值范围,但仍然是两种不同的类型。一般情况下,如果对一个整数所占字节数和取值范围没有特殊要求,使用(unsigned)int 型为宜,因为他具有最高的处理效率。

1、typedef 类型

    可以使用 typedef 为一个已有的类型取一个新的名字。下面是使用 typedef 定义一个新类型的语法:

typedef type name

    例如,下面的语句会告诉编译器,guojia是 int 的另一个名称:

typedef int guojia;

    而通过下面的声明是完全合法的,它创建了一个整型变量 aaa:

guojia aaa 2、枚举类型

    枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型。所谓"枚举"是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。

    创建枚举,需要使用关键字 enum。枚举类型的一般形式为:

enum 枚举名{ 标识符[=整型常数], 标识符[=整型常数], ... 标识符[=整型常数]} 枚举变量;

    如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始。

    例如,下面的代码定义了一个颜色枚举,变量 c 的类型为 color。最后,c 被赋值为 "blue"。

enum color { red, green, blue } c;c = blue;

    默认情况下,第一个名称的值为 0,第二个名称的值为 1,第三个名称的值为 2,以此类推。但是,您也可以给名称赋予一个特殊的值,只需要添加一个初始值即可。例如,在下面的枚举中,green 的值为 5。

enum color { red, green=5, blue };

    在这里,blue 的值为 6,因为默认情况下,每个名称都会比它前面一个名称大 1,但 red 的值依然为 0。

3、常量

    常量是指在程序运行的整个过程中其值始终不可改变的量,也就是直接使用符号表示的量。其中又可分为整型常量、实型常量、字符常量、字符串常量、布尔常量。需要注意的是实型常量,其中的指数形式可以为.123E-1,12.e2,1.e-3,但不能写成e-3这种格式(e不区分大小写,且e后面的数必须为整数)

double guojia = 12.3f 4、变量

    声明一个变量只是将变量名标识符的有关信息告述编译器,是编译器认识该标识符,但是声明并不一定引起内存的分配。而定义一个变量意味着给变量分配内存空间,用于存放对应类型的数据,变量名就是对相应内存单元的命名。在c++中,大多数情况下,变量声明也就是变量定义,只有声明外部变量时例外。

auto存储类型:采用堆栈方式分配内存空间,属于暂时性存储,其内存空间可以多次覆盖使用。

egister存储类型:存放在通用寄存器中。

extern存储类型:在所有函数和程序段中都可以引用。

static存储类型:在内存中是以固定地址存放中的,在整个程序运行起间都有效。

    使用const关键字来创建符号常量,常量被创建后其值就固定了,编译器将不允许修改该常量的值。

const int a = 20;

    注意,应在声明时对const进行初始化,如果在声明常量时没有提供值,则该常量的值将是不确定的,且无法修改。

5、运算符

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C++ 内置了丰富的运算符,并提供了以下类型的运算符:

算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符 名字从上到下优先级后缀() [] -> . ++ - -从左到右一元+ - ! ~ ++ - - (type)* & sizeof从右到左乘除* / %从左到右加减+ -从左到右移位>从左到右关系< >=从左到右相等== !=从左到右位与 AND&从左到右位异或 XOR^从左到右位或 OR|从左到右逻辑与 AND&&从左到右逻辑或 OR||从左到右条件?:从右到左赋值= += -= *= /= %=>>= using namespace std; int auks ,bats , coots; auks=11.99+12.99; bats=(int)12.99+(int)13.99; coots=int(12.99)+int(11.99); cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3