上次分享了hello world, 今天小编分享 C++基本数据类型及流控制语句 ,建议大家收藏慢慢学习,同时希望对大家的C++学习有所帮助。
C++ 数组
C++ 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。
所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。
声明数组
在 C++ 中要声明一个数组,需要指定元素的类型和元素的数量,如下所示:
type arrayName[arraySize];
这叫做一维数组。arraySize 必须是一个大于零的整数常量,type 可以是任意有效的 C++ 数据类型。例如,要声明一个类型为 double 的包含 10 个元素的数组 balance,声明语句如下:
double balance[10];
现在 balance 是一个可用的数组,可以容纳 10 个类型为 double 的数字。
初始化数组
在 C++ 中,可以逐个初始化数组,也可以使用一个初始化语句,如下所示:
double balance[5]={1000.0,2.0,3.4,7.0,50.0};
大括号 { } 之间的值的数目不能大于我们在数组声明时在方括号 [ ] 中指定的元素数目。
如果省略掉了数组的大小,数组的大小则为初始化时元素的个数。因此,如果:
double balance[]={1000.0,2.0,3.4,7.0,50.0};
将创建一个数组,它与前一个实例中所创建的数组是完全相同的。
下面是一个为数组中某个元素赋值的实例:
balance[4]=50.0;
上述的语句把数组中第五个元素的值赋为 50.0。所有的数组都是以 0 作为它们第一个元素的索引,也被称为基索引,数组的最后一个索引是数组的总大小减去 1。以下是上面
所讨论的数组的的图形表示:
访问数组元素
数组元素可以通过数组名称加索引进行访问。元素的索引是放在方括号内,跟在数组名称的后边。例如:
double salary=balance[9];
上面的语句将把数组中第 10 个元素的值赋给 salary 变量。下面的实例使用了上述的三个概念,即,声明数组、数组赋值、访问数组:
#include<iostream>using namespace std;
#include<iomanip>using std::setw;intmain(){
int n[10];
// n 是一个包含 10 个整数的数组
// 初始化数组元素
for ( int i = 0; i < 10; i++ ) {
n[ i ] = i + 100;
// 设置元素 i 为 i + 100 }
cout << "Element" << setw( 13 ) << "Value" << endl;
// 输出数组中每个元素的值
for ( int j = 0; j < 10; j++ ) {
cout << setw( 7 )<< j << setw( 13 ) << n[ j ] << endl; }
return 0;}
C++ 字符串
C++ 提供了以下两种类型的字符串表示形式:
C 风格字符串
C++ 引入的 string 类类型
C 风格字符串
C 风格的字符串起源于 C 语言,并在 C++ 中继续得到支持。字符串实际上是使用 null 字符 '0' 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。
下面的声明和初始化创建了一个 "Hello" 字符串。由于在数组的末尾存储了空字符,所以字符数组的大小比单词 "Hello" 的字符数多一个。
char greeting[6]={'H','e','l','l','o','0'};
依据数组初始化规则,可以把上面的语句写成以下语句:
char greeting[]="Hello";
以下是 C/C++ 中定义的字符串的内存表示:
其实,不需要把 null 字符放在字符串常量的末尾。C++ 编译器会在初始化数组时,自动把 '0' 放在字符串的末尾。让我们尝试输出上面的字符串:
实例
#include<iostream>using namespace std;intmain(){
char greeting[6]={'H','e','l','l','o','0'};
cout<<"Greeting message: ";
cout<<greeting<<endl;
return0;}
当上面的代码被编译和执行时,它会产生下列结果:
Greeting message:Hello
C++ 中有大量的函数用来操作以 null 结尾的字符串:supports a wide range of functions that manipulate null-terminated strings:
下面的实例使用了上述的一些函数:
实例
#include<iostream>#include<cstring>using namespace std;intmain(){
char str1[11]="Hello";
char str2[11]="World";
char str3[11];
int len;
// 复制 str1 到 str3 strcpy( str3, str1);
cout << "strcpy( str3, str1) : " << str3 << endl;
// 连接 str1 和 str2 strcat( str1, str2);
cout << "strcat( str1, str2): " << str1 << endl;
// 连接后,str1 的总长度 len = strlen(str1);
cout << "strlen(str1) : " << len << endl;
return 0;}
当上面的代码被编译和执行时,它会产生下列结果:
strcpy( str3, str1) : Hellostrcat( str1, str2): HelloWorldstrlen(str1) : 10C++ 中的 String 类
C++ 标准库提供了 string 类类型,支持上述所有的操作,另外还增加了其他更多的功能。现在让我们先来看看下面这个实例:
实例
#include<iostream>#include<string>using namespace std;intmain(){
string str1="Hello";
string str2="World";
string str3;int len;
// 复制 str1 到 str3 str3 = str1;
cout << "str3 : " << str3 << endl;
// 连接 str1 和 str2 str3 = str1 + str2;
cout << "str1 + str2 : " << str3 << endl;
// 连接后,str3 的总长度 len = str3.size();
cout << "str3.size() : " << len << endl;
return 0;}
当上面的代码被编译和执行时,它会产生下列结果:
str3:Hellostr1+str2:HelloWorldstr3.size():10
C++ 循环
有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。
编程语言提供了允许更为复杂的执行路径的多种控制结构。
循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的一般形式:
循环类型
C++ 编程语言提供了以下几种循环类型。
循环控制语句
循环控制语句更改执行的正常序列。当执行离开一个范围时,所有在该范围中创建的自动对象都会被销毁。
C++ 提供了下列的控制语句。
无限循环
如果条件永远不为假,则循环将变成无限循环。for 循环在传统意义上可用于实现无限循环。由于构成循环的三个表达式中任何一个都不是必需的,可以将某些条件表达式留空来构成一个无限循环。
实例
#include<iostream>using namespace std;intmain(){
for(;;){
printf("This loop will run forever.n");}
return0;}
当条件表达式不存在时,它被假设为真。也可以设置一个初始值和增量表达式,但是一般情况下,C++ 程序员偏向于使用 for(;;) 结构来表示一个无限循环。
注意:可以按 Ctrl + C 键终止一个无限循环。
C++ 判断
判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。
下面是大多数编程语言中典型的判断结构的一般形式:
判断语句
C++ 编程语言提供了以下类型的判断语句。
好了,以上就是对 C++基本数据类型及流控制语句的分享。
如果你喜欢这篇文章的话,动动小指,加个关注哦~
如果你也想成为程序员,想要快速掌握编程,这里为你分享一个学习企鹅圈子!
里面有资深专业软件开发工程师,在线解答你的所有疑惑~C++入门“so easy”
编程学习书籍:
编程学习视频: