《c++入门经典》笔记3

《c++入门经典》笔记3

第三章 建立变量和常量

3.1变量是什么

变量是计算机内存中的一个位置,您能够在这里存储和检索值。变量有地址,并赋予了描述其用途的名称。ios

例如int zombies = 2;其中zombies是变量名,2是其存储的变量值,可是它可能被放在了内存中的第101~104块,那么它的地址就是101~104(实际可能只显示头部地址)c++

 

c++建立变量时,须指定变量名称和类型,好比int a;,数据类型用于指定变量所占用的最大空间(单位为字节)函数

基本数据类型:(因操做系统平台不一样,长度可能会有所不一样)spa

类型 长度(字节数) 取值范围
unsigned short 2 0~65 535
short 2 -32 768~32 767
unsigned long 4 0~4 294 967 295
long 4 -2 147 483 648~2 147 483 647
int 4 -2 147 483 648~2 147 483 647
unsigned int 4 0~4 294 967 295
long long int 8 -9.2x1018 ~9.2x1018
char 1 256个字符
bool 1 true或false
float 4 1.2e-38~3.4e38
double 8 2.2e-308~1.8e308

其中须注意的是无符号数的长度虽然与有符号数的相同,可是从0开始操作系统

最特殊的是浮点数,浮点数的制定与其余的不一样,它是依据IEEE754标准制定的,浮点表示法应该是一个programer掌握的最基本知识(之后会有深刻理解计算机系统笔记,到时候会再行说明)code

固然,c++也支持用户自定义的变量类型,好比用户定义的类或结构体。内存

要获取变量类型的长度,可以使用sizeof()函数编译器

 

程序清单3.1 Size.cppstring

#include<iostream>
int main(){
   std::cout<<"The size of an integer:\t\t";
   std::cout<<sizeof(int)<<" bytes\n";
   std::cout<<"The size of a short integer:\t";
   std::cout<<sizeof(short)<<" bytes\n";
   std::cout<<"The size of a long integer:\t";
   std::cout<<sizeof(long)<<" bytes\n";
   std::cout<<"The size of a character:\t";
   std::cout<<sizeof(char)<<" bytes\n";
   std::cout<<"The size of a boolean:\t\t";
   std::cout<<sizeof(bool)<<" bytes\n";
   std::cout<<"The size of a float:\t\t";
   std::cout<<sizeof(float)<<" bytes\n";
   std::cout<<"The size of a double float:\t\t";
   std::cout<<sizeof(double)<<" bytes\n";
   std::cout<<"The size of a long long int:\t\t";
   std::cout<<sizeof(long long int)<<" bytes\n";
}

 

3.2定义变量

驼峰命名法:it

对变量命名使用小驼峰命名法(首单词小写,其他单词首字母大写),如:newWroldRecord

对类名,名称空间使用大驼峰命名法(单词首字母均大写),如:DataBaseManager

除了驼峰命名法以外,没啥可记录的了。

 

3.3给变量赋值

赋值运算符: =

 

程序清单3.2 Rectangle.cpp

#include <iostream>

int main()
{
   unsigned short width = 26, length;
   length = 40;
   unsigned short area = width * length;
   std::cout << "Width: " << width << "\n";
   std::cout << "Length: " << length << "\n";
   std::cout << "Area: " << area << "\n";
   return 0;
}

 

3.4类型定义

类型定义关键字:typedef

 

程序清单3.3 NewRectangle.cpp

#include <iostream>

int main()
{
   typedef unsigned short USHORT;
   USHORT width = 26;
   USHORT length = 40;
   USHORT area = width * length;
   std::cout << "Width: " << width << "\n";
   std::cout << "Length: " << length << "\n";
   std::cout << "Area: " << area << "\n";
   return 0;
}

 

3.5常量

常量值不会改变,且必须在建立常量时对其进行初始化。c++支持两种类型的常量:字面常量与符号常量

字面常量是直接在须要的地方输入的值

好比:long width = 19;中,19就是字面常量,true与false也是字面常量。

符号常量是用名称表示的常量,与变量类型类似。声明符号常量时,须要使用关键字const,并在后面跟类型、名称和初值。

好比:const int KILL_BONUS = 5000;

也可定义常量,如:#define KILLBONUS 5000,因为这种c式定义法没有指定类型,编译器没法确保其值是合适的,因此建议采用const关键字,而非使用编译指令进行常量定义。

 

枚举常量是在一条语句中建立一组常量,使用关键字enum定义,枚举值放在大括号里,之间逗号进行分隔。

好比:enmu Color {RED=100,BLUE,GREEN=500,WHITE,BLACK=700};

 

程序清单3.4 Compass.cpp

#include <iostream>

int main()
{
   enum Direction
  {
       North,
       Northeast,
       East,
       Southeast,
       South,
       Southwest,
       West,
       Northwest
  };
   Direction heading;
   heading = Southeast;
   std::cout << "Moving " << heading << std::endl;
   return 0;
}

这里的输出结果是moving 3,缘由是若是不进行显式初始化枚举常量,则枚举值从North开始默认为0,而后递增。

 

3.6自动变量

c++有一个关键字auto,可用于根据赋给变量的初值推断出变量的类型,该工做由编译器完成。

 

好比:auto rate=500/3.0等价于double rate=500/3.0

 

程序清单3.5 Combat.cpp

#include <iostream>

int main()
{
   auto strength = 80;
   auto accuracy = 45.5;
   auto dexterity = 24.0;

   const auto MAXIMUM = 50;

   auto attack = strength * (accuracy/MAXIMUM);
   auto damage = strength * (dexterity/MAXIMUM);
   std::cout<<"\nAttack rating: "<<attack<<"\n";
   std::cout<<"Damage rating: "<<damage<<"\n";

   return 0;
}

结果是:

Attack rating: 72.8 Damage rating: 38.4

 

若是上面这个程序您的编译器发出报错或警告,多是您的编译器默认编译的c++版本在14如下,则使用如下编译命令尝试让编译器选择使用c++14进行编译:

g++ -std=c++14 Combat.cpp -o Combat.exe

(Linux下大同小异)

相关文章
相关标签/搜索