C/C++ 使用new创建动态变量和数组数组

1. 使用new 创建格式以及delete删除的格式

a. 创建和删除指针变量个数如下:

new:           type_name * pointer_name = new type_name;

delete:        delete pointer_name;

b. 创建和删除动态数组格式如下:

new:         type_name *pointer_name = new type_name [num_elements];

delete:      delete [] pointer_name;

示例如下:

2. 动态数组的使用

动态数组创建后 type_name *pointer_name = new type_name [num_elements]; 

其中 pointer_name便指向了数组的第一个元素,而*pointer_name则是第1个元素的值

为了更方便的访问其他地址的值,我们将pointer_name[0]来表示第一个地址的值,而不是使用*pointer_name来表示第一个元素的值,后面的值则以此类推,

我们要访问其他数组的值,则只需要将指向第一个数组的地址加一个地址空间即可。

注意: *pointer_name 和pointer_name[0] 则是等价的 ,都指向第一个元素的值;

如上图,p+i指向的是地址,和值的取地址&p[i]指向的都是地址,而p[i]指向的是值

3. 源码:

// new_array.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <stdlib.h>

int main()
{
	// 创建动态指针
	int *pn = new int;
	*pn = 100;
	printf("*pn = %d, pn=%d\n\n", *pn, pn);
	delete pn;
    
	// 创建动态数组
	int* p = new int[10];
	for (int i = 0; i < 10; i++)
	{
		p[i] = i+10;

		printf("%d. p[] = %d, p=%d  &p=%d\n", i, p[i], p+i, &p[i]);
	}
	delete[] p;
}

4. 执行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WendyWJGu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值