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。