C语言-指针与数组及malloc函数

指针进阶

上一节中,我们认识了指针。
这次来认识指针与malloc函数以及指针与数组。

指针与数组

开一个10空间的数组:int a[10];此空间为连续可用空间,分别是a[0]~a[9],不能是a[10],a[10]表示数组过界;
数组的首地址表示为 a或&a[0];&a[1]=a+1;
指针就是地址,int *p后,用指针表示首地址,则通过p++可逐一表示每一个地址
eg: p=a(p=&a[0]),p++,可逐次访问地址
(附一知识点:p++为先用再加,++p为先加后用)

用程序说明:

用指针实现一个一维数组的求和
!先不要看答案试一下 !

#include <stdio.h>
int main()
{
   
	int a[10],i,sum;
	int *p;
	p=a; //指针表示数组首地址
	sum=0;
	
	for(i=0;i<10;i++)
		a[i]=i+1;
	for(i=0;i<10;i++)
		printf("a[%d]=%d ",i,*(p+i));
		
	for(i=0;i<10;i++)
	
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言中,可以使用malloc函数来动态地分配内存空间以创建一个动态数组malloc函数的原型如下: ```c void* malloc(size_t size); ``` 其中,size_t是一个无符号整数类型,表示要分配的内存空间的大小(以字节为单位)。malloc函数返回一个指向分配内存空间的指针,如果分配失败,则返回NULL。 下面是使用malloc函数创建动态数组的步骤: 1. 确定要创建的动态数组的元素类型和元素个数。 2. 计算需要分配的内存空间的大小,即元素类型的大小乘以元素个数。 3. 调用malloc函数分配内存空间,并将返回的指针赋给一个指针变量。 4. 检查malloc函数是否成功分配了内存空间(即返回的指针是否为NULL)。 5. 使用分配的内存空间来存储数据。 下面是一个示例代码,演示了如何使用malloc函数创建一个动态数组: ```c #include <stdio.h> #include <stdlib.h> int main() { int n; // 动态数组的元素个数 int* arr; // 指向动态数组指针 printf("请输入动态数组的元素个数:"); scanf("%d", &n); // 计算需要分配的内存空间的大小 size_t size = n * sizeof(int); // 调用malloc函数分配内存空间 arr = (int*)malloc(size); // 检查malloc函数是否成功分配了内存空间 if (arr == NULL) { printf("内存分配失败!\n"); return 1; } // 使用动态数组存储数据 for (int i = 0; i < n; i++) { printf("请输入第%d个元素的值:", i + 1); scanf("%d", &arr[i]); } // 打印动态数组的元素 printf("动态数组的元素为:"); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } printf("\n"); // 释放动态数组所占用的内存空间 free(arr); return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值