可以更直接地接触到内存,高效的同时存在更大的风险。
一般情况下使用vector更好
6.1数组
与vector不同,数组是一种静态的数据结构,在初始化的时候就必须指定大小,且不能作为左值被修改。不能被重新赋值。
#include <iostream>
using namespace std;
// 数组的操作
int main() {
int arr1[5] = {
0, 1, 2, 3, 4 };
int arr2[5] = {
0, 1, 2 };
int arr3[] = {
0, 1, 2, 3, 4 };
for ( int i = 0; i < 5; i++ )
{
cout << arr1[i] << " ";
}
cout << endl;
for ( int i = 0; i < 5; i++ )
{
cout << arr2[i] << " ";
}
cout << endl;
for ( int i = 0; i < 5; i++ )
{
cout << arr3[i] << " ";
}
cout << endl;
return 0;
}
6.2指针
1、一定要初始化所有的指针
一般会把指针初始化为NULL,是一个宏定义,实际值是0,即地址0x00000000
2、指针可以相减,表示两个地址之间的距离,而相加却没有意义。
3、const变量是不能修改的,指向const对象的指针可以保证原变量不被修改。
#include <iostream>
#include <string>
using namespace std;
int main() {
//1、指针的含义
int arr[5] = {
0, 1, 2, 3, 4 };
int *ptr = arr;
for ( int i = 0; i < 5; i++ )
{
cout << *ptr << " ";
cout << "地址:" << ptr << endl;
ptr++;
}
//2、指针的创建与初始化
float *floatPtr = NULL;
string *strPtr;
int *intPtr1, *intPtr2;
void *abc;
//3、解引用、取地址、左值解引用
int num = 4;
int *intPtr = #
cout << "num的地址是:" << &num << endl;
cout << "指针的值是:" << intPtr << endl;
if ( intPtr )
{