IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言——动态一维数组的构造 -> 正文阅读

[C++知识库]C语言——动态一维数组的构造

动态一维数组的构造

这个简单的程序可以很好地帮助理解指针的知识和动态内存分配的知识。

源代码

# include <stdio.h>
# include <malloc.h>

int main(void)
{
	int len; //要构造一个数组,首先需要定义好数组的长度;
//	int * pArr; //接着这里可以理解为是定义数组名 ;   a[5]; 其中a这个数组名就是存放的数组第一个元素的地址。这里同理。
	int i;

	printf("输入你要定义数组的长度:");
	scanf("%d", &len);
	int * pArr = (int *)malloc(sizeof(int) * len);//12行;这里不能只写一个len,len是数组的长度,但数组所占字节,应该乘上相应的数据类型,例如这里是int类型,就是sizeof(int) * len 

	//对数组进行赋值
	for (i=0; i<len; i++)
	{
		printf("输入第%d个元素:",i);
		scanf("%d", &pArr[i]);
	}

	//操作数组:显示输出
	printf("你构造的数组如下:\n");
	for (i=0; i<len; i++)
		printf("%d\n", pArr[i]);

	free(pArr); //手动释放内存;

	return 0;
}

在vc++6.0环境下运行结果如下

输入你要定义数组的长度:
5
输入第0个元素:1
输入第1个元素:55
输入第2个元素:-6
输入第3个元素:326
输入第4个元素:55
你构造的数组如下:
1
55
-6
326
55 

总结

	int * pArr;
pArr = (int *)malloc(sizeof(int) * len);

上面这两句等价于下面这句

int * pArr = (int *)malloc(sizeof(int) * len);

效果如同:

     int a;
	 a = 5;
	 等价于
	 int a = 5;

int *是一个整体,int * p代表定义了,
一个只能存放整形数据类型地址 的指针变量,变量名为p
2.
第12行用 sizeof(int) * len;作为malloc的实参,
而不用4 * len是因为这样程序移植性更强(不同环境下int类型所占字节数不一定都是4个字节)
3.
第12行如果实参写错,例如只写了一个len(数组长度),忘记乘上对应字节数,
在语法上没错误,但是在程序运行时会出错,因为出现了越界。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-21 15:10:21  更:2021-08-21 15:12:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 16:17:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码