处理数据
简单变量
1.变量名命名
- 在名称中只能使用字母字符·数字和_;
- 名称第一个不能是数字;
- 区分字母大小写;
- 不能将c++关键字作为名称;
- c++名称长度没有限制,平台有长度限制;
- 如果要用多个单词组成名称,通常用_将单词分开,如my_arr;
或者从第二个将第一个字母大写,如myArr;
2.运算符sizeof和头文件limits
1.sizeof对类型名(如int)使用应将名称放括号里,对变量名(如n_short)使用括号是可选的:
cout<<"int is"<<sizeof(int)<<"bytes.\n";
cout<<"short is"<<sizeof n_short<<"bytes.\n";
头文件climits定义了符合常量来表达类型的限制。
3.初始化
1.初始化将赋值与声明合并在一起。例如:下面的语句声明了变量n_int,并将int的最大取值赋给它:
int n_int = INT_MAX;
2.使用字面值常量来初始化。将变量初始化为另一个变量,条件是后者已经定义过。甚至可以使用表达式来初始化变量,条件是当程序执行到该声明时,表达式中所有的值都是已知的:
int unclass = 5;
int aunts = uncles;
int chairs = aunts+uncles+4;
前面的初始化都是C语言,C++还有独特的初始化语法:
int owls = 101;//C
int wrens(432);;//C++
注:如果不对函数内部定义的变量进行初始化,该变量的值是不确定的。这意味着该变量的值将是它被创建之前,相应内存单元保存的值。还有要在声明变量时进行初始化。
C++11初始化方式
用于数组和结构的初始化方式,但在c++98中,也可用于单值变量:
int hamburgers = {
24};
将大括号初始化用于单值的很多,但C++11标准更多了。首先,采用这种方式时,可以使用等号(=),也不用:
int emus{
7};
int rheas={
12};
大括号可不包含如何值,变量默认为0:
int rocs={
};
int psychics{
};
这有助于更好防范类型错误。
无符号类型
前面介绍的整型都有一种不能存储负数值的无符号变体,其优点是可增大变量能够存储的最大值。仅当数值不会为负时才应使用无符号类型。如:人口、粒数等。要创建无符号版本的基本整型,只需使用关键字unsigned来修改声明:
unsigned short change;//unsigned short
unsigned int rovert;//unsigned int
unsigned quarterback;//unsigned int
unsigned long gone;//unsigned long
unsigned long long lang_lang;//unsigned long long
注:unsigned 本身是unsigned int 的缩写。
例:
#include<iostream>
#include<climits>//将INT_MAX定义为最大的int值
#define ZERO 0
using namespace std;
int main()
{
short sam = SHRT_MAX;//将变量初始化为最大值
unsigned short sue = sam;//ok,如果变量sam已经定义
cout<<"Sam has"<<sam<<"dollars and Sue has"<<sue;
cout<<"dollars deposited."<<endl
<<"Add $1 to each account."<<endl<<"Now";
sam=sam+1;
sue=sue+1;
cout<<"Sam has"<<sam<<"dollars and Sue has"<<sue;
cout<<"dollars deposited.\nPoor Sam!"<<endl;
sam=ZERO;
sue=ZERO;
cout<<"Sam has"<<sam<<"dollars and Sue has"<<sue;
cout<<"dollars depoited."<<endl;
cout<<"Take $1 from each account."<<endl<<"Now";
sam=sam-1;
sue=sue-1;
cout<<"Sam has"<<sam<<"dollars and Sue has"<<sue;
cout<<"dollars deposited."<<endl<<"Lucky Sue!"<<endl;
return 0;
}
const限定符
1.如果在多个地方使用一个常量,只需要加一个符号定义:const 关键字
如:
const int a=100;
这样定义程序中a只能等于10,不能修改。
创建方式:
const type name = value;
类型转换和auto声明
1.有时,编程的过程中需要将值从一种数据类型转换为另一种数据类型。
1.将一种算术类型的值赋值给另一种算术类型,c++将进行强制转换;
2.不同类型之间转换,c++将进行值转换;
3.将参数传递给函数时,c++将对值进行转换;
#include <iostream>
using namespace std;
int main()
{
cout.setf(ios_base::fixed,ios_base::floatfield);
float tree=3;
int guess(3.9832);
int debt=7.2E12;
cout<<"tree="<<tree<<endl;
cout<<"guess="<<guess