第六章、数组与指针

本文深入探讨了C++中的数组、指针和引用。数组是一种静态数据结构,不能重新赋值;指针需初始化,常用于动态内存分配;引用是变量的别名,使用时需与变量绑定。动态数组通过malloc/free或new/delete进行内存管理。
摘要由CSDN通过智能技术生成

可以更直接地接触到内存,高效的同时存在更大的风险。
一般情况下使用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 = &num;
	cout << "num的地址是:" << &num << endl;
	cout << "指针的值是:" << intPtr << endl;
	
	if ( intPtr ) 
	{
    
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值