c++快速入门1:简介2:变量
变量
变量是容器,其中的数据值可以存储在计算机的内存中。存储的值可以用变量的名称来引用。
可以为变量选择任何名称,只要它遵守C++的命名规则--所选的名称只能包含字母、数字和下划线字符,但不能以数字开头。另外,必须避免使用C++关键字。选择有意义的名字是很好的做法,可以使代码更容易理解。
创建变量,必须进行 "声明",指定它可能包含的数据类型和它选择的名称。变量声明有这样的语法。数据类型 变量名称 ;
在C++中,名称是区分大小写的--因此名为VAR、Var和var的变量被视为三个单独的变量。传统上,C++的变量名是小写的,很少以下划线开始,因为一些C++库使用这种惯例。
同一数据类型的多个变量可以在一个声明中以逗号分隔的列表形式创建,其语法:数据类型 变量名1 , 变量名2 , 变量名3 。
下表列出了五种基本的C++数据类型,并附有简要说明和示例内容。
char数据类型的字符值必须总是包含在单引号中,而不是双引号。
变量声明必须出现在可执行语句之前--这样它们就可以在语句中被引用。
"初始化"是把值分配给变量时。也可以在声明中对变量进行初始化。存储在任何初始化变量中的值可以通过cout函数显示在标准输出上。
vars.cpp
#include <iostream>
using namespace std ;
int main()
{
char letter ; letter = 'A' ;
int number ; number = 100 ;
float decimal = 7.5 ;
double pi = 3.14159 ;
bool isTrue = false ;
cout << "char letter: " << letter << endl ;
cout << "int number: " << number << endl ;
cout << "float decimal: " << decimal << endl ;
cout << "double pi: " << pi << endl ;
cout << "bool isTrue: " << isTrue << endl ;
return 0 ;
}
布尔变量名建议以 "is "开头,这样它们就能立即被识别为布尔变量。另外,对所有由多个单词组成的变量名使用 "lowerCamelCase"--除了第一个单词外,其他的都以大写字母开头,如 "isTrue"。
变量数组
数组是可以存储多个数据项的变量。这些数据按顺序存储在数组的 "元素 "中,这些元素是有编号的,从0开始。因此,第一个值被存储在元素0中,第二个值被存储在元素1中,以此类推。
数组的声明方式与其他变量相同,但另外还必须在声明中指定数组的大小,在数组名称后面的方括号中。例如,声明名为 "nums "的数组来存储六个整数的语法是这样的。
int nums[6] ;
可以选择在声明数组时对其进行初始化,将每个元素的值以逗号分隔的列表形式用大括号括起来。例如。
int nums[6] = { 0, 1, 2, 3, 4, 5 } 。
单独的元素可以用数组的名称和包含元素编号的方括号来引用。这意味着nums[1]引用的是上面例子中的第二个元素--而不是第一个元素,因为元素编号从0开始。
可以为任何C++数据类型创建数组,但每个元素只能包含相同数据类型的数据。一个字符数组可以用来存储一串文本,如果最后一个元素包含特殊的/0 null字符。比如说
char name[5] = { 'm', 'i', 'k', 'e', '\0' } ;
数组中的元素统称为 "索引"。数组可以有一个以上的索引--代表多个维度,而不是普通数组的单维。三个索引以上的多维数组并不常见,但二维数组对于存储基于网格的信息(如坐标)很有用。比如说
int coords[2] [3] = { { 1, 2, 3 } , { 4, 5, 6 } } 。
arrays.cpp
#include <iostream>
using namespace std ;
int main()
{
float nums[3] ; // Declared then initialized.
nums[0] = 1.5 ; nums[1] = 2.75 ; nums[2] = 3.25 ;
// Declared and initialized.
char name[5] = { 'm', 'i', 'k', 'e', '\0' } ;
int coords[2] [3] = { { 1, 2, 3 } , { 4, 5, 6 } } ;
cout << "nums[0]: " << nums[0] << endl ;
cout << "nums[1]: " << nums[1] << endl ;
cout << "nums[2]: " << nums[2] << endl ;
cout << "name[0]: " << name[0] << endl ;
cout << "Text string: " << name << endl ;
cout << "coords[0][2]: " << coords[0][2] << endl ;
cout << "coords[1][2]: " << coords[1][2] << endl ;
return 0 ;
}
矢量数组
矢量是普通数组的替代品,它的优点是可以根据程序需要改变其大小。创建:vector < data-type > vector-name ( size ) 或vector < data-type > vector-name ( size , initial-value ) 。
vector.cpp
#include <vector>
#include <iostream>
using namespace std ;
int main()
{
vector <int> vec(3,100) ;
cout << "Vector size: " << vec.size() << endl ;
cout << "Is empty?: " << vec.empty() << endl ;
cout << "First element: " << vec.at(0) << endl ;
vec.pop_back() ; // Remove final element.
cout << "Vector size: " << vec.size() << endl ;
cout << "Final element: " << vec.back() << endl;
vec.clear() ; // Remove all elements.
cout << "Vector size: " << vec.size() << endl;
vec.push_back( 200 ) ; // Add an element.
cout << "Vector size: " << vec.size() << endl ;
cout << "First element: " << vec.front() << endl ;
return 0 ;
}
常量
在程序执行过程中不会改变的数据应该存储在常量容器中。这样可以更好地让编译器检查代码中的错误--如果程序试图改变存储在常量中的值,编译器就会报告错误,编译就会失败。
常量可以为任何数据类型创建,方法是在变量声明前加上 const 关键字,然后再加上空格。通常情况下,常量名称以大写字母出现,以区别于小写变量名称。与变量不同,常量必须始终在声明中被初始化。例如,数学pi值的常量声明看起来像这样。
const double PI = 3.1415926536 ;
enum关键字可以用简洁的方式创建整数常量序列:
enum suit { CLUBS , DIAMONDS , HEARTS , SPADES } 。
除非指定,第一个常量的值为0,下一个常量的值为1,以此类推。一个常量可以被赋予任何整数值,但是列表中的下一个常量总是将其递增为1。
有时,将一个枚举常量列表定义为 "自定义数据类型 "更方便的--通过使用typedef关键字。这可以作为枚举声明的开始,并且可以在声明的末尾添加一个选定的类型名称。例如,这个typedef语句创建了一个名为 "电荷 "的自定义数据类型。
typedef enum { NEGATIVE , POSITIVE } charge 。
然后可以用通常的方法创建自定义数据类型的变量,这些变量可以合法地分配给所列的任何常量。从本质上讲,这些变量的作用就像int变量一样--因为它们存储的是被分配的常量所代表的数字整数值。例如,在上面的例子中,将一个POSITIVE常数分配给一个电荷变量,实际上分配了一个1的整数。
constant.cpp
#include <iostream>
using namespace std ;
int main()
{
const double PI = 3.1415926536 ;
cout << "6\" circle circumference: " << (PI * 6) << endl ;
enum { RED=1, YELLOW, GREEN, BROWN, BLUE, PINK, BLACK } ;
cout << "I shot a red worth: " << RED << endl ;
cout << "Then a blue worth: " << BLUE << endl ;
cout << "Total scored: " << (RED + BLUE) << endl ;
typedef enum { NEGATIVE , POSITIVE } charge ;
charge neutral = NEGATIVE , live = POSITIVE ;
cout << "Neutral wire: " << neutral << endl ;
cout << "Live wire: " << live << endl ;
return 0 ;
}
小结
- C++是一种面向对象的编程语言,是C语言的扩展。
- GNU C++编译器可用于Windows和Linux。
- 预处理器指令用于使程序可以使用标准C++库中的功能。
- C++程序必须包含main方法作为程序的入口。
- 语句定义了程序要执行的动作。
- 建议对程序代码进行注释。
- c++命令调用编译器,其-o选项允许命令指定生成的可执行文件的名称。
- 变量声明指定了数据类型和名称,通过这个名称可以引用该变量内的值。
- cout函数是C++ iostream库的一部分,它将内容写到标准输出控制台。
- 数组是固定大小的变量,在元素中存储多个数据项,这些元素的编号从0开始。
- 特殊的\0字符可以分配给char数组的最后一个元素,使其被视为一个单一的文本字符串。
- 矢量变量在元素中存储多个数据项,并且可以动态地调整大小。
- 存储在数组或向量元素中的值可以使用该变量的名称索引号来引用。
- 永远不会改变的变量值应该存储在常量中。
- 常量列表可以通过enum关键字自动编号,并通过typedef关键字给出一个类型名称。