C++深入理解(2)------新变量的认识

    C++11增加了两个新的变量用来处理字符串,分别是char_16和char_32,两者都是无符号的字符型,但是在赋值的时候必须使用特殊的表示,char_16是用u'c'中的u做标识,而char_32使用U作为标识。

    const的修饰变量的一般约定:使用const定义的变量,如const int Month=20;其中的Month为了加以区分,一般都是使用手写大写字母,或者以k打头,例如kmonth。

    使用float时一定要注意,它的有效位(就是出现第一个非0数字后的位数)最长只有6位,其他的位数就会被省去,如下面的代码

#include <iostream>

using namespace std;

int main()
{
	float a = 62.48684f;
	float b = 61884842.48684f;
	float c = 612.48f;
	float d = b * 10;


	cout << "a=" << a << endl;
	cout << "b=" << b << endl;
	cout << "c=" << c << endl;
	cout << "d=" << d << endl;


	cin.get();
	return 0;
}


    输出的值可能并非预料的那样:


    下面将写出double等详细的有效长度和数值范围

    

类型 有效位长度 占用字节长度 数据最大最小范围
float 6 24 -37e10~~~38e10
double 15 53 -307e10~~308e10
long double 18 64 -4931e10~4932e10

关于复杂变量

    如结构体等的复杂变量,这里只介绍一种容易被大家忽略的事情:

    struct strA 

    {int a,char b,double c}; 

    其中的strA相当于一种新的变量类型,在使用的时候可以strA  tmpstrA;  strA tmpstrB;等声明多个变量,但是有一种用法,如下面:

    struct 

    {int a,char b,double c} strA;

    这种省略了变量类型,而strA则成为新生成的变量名,也就是说strA本身已经是一个变量了,不能再使用strA tmpstrA这种形式。这样省略变量类型,就会导致只能有一个这种类型的结构体。还有一种其他用法,顺便再strA后边增加*pstrA,表示这个没有变量类型的结构体的指针为pstrA。

    

猜你喜欢

转载自blog.csdn.net/xiaopengshen/article/details/79308543
今日推荐