码迷,mamicode.com
首页 > 编程语言 > 详细

指针的数组

时间:2014-11-05 23:18:21      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   for   sp   文件   数据   on   

前言:上一篇,提到了栈和堆,想必你也清楚了栈和堆的区别,现在 通过指针的数组来看一下,指针是如何操作栈和堆的。



栈里面的数组:

<span style="font-size:18px;">
int a[10];   //这个空间实在栈内存中申请的

int *p =NULL:

p =a;                      //a是数组的首地住所以可以直接赋值给指针p

p[0]=10;                 //就等同于a[0]=10;</span>



这个是堆里面的数组

<span style="font-size:18px;">
int *a = NULL;

a=(int *) malloc(10*sizeof(int));        //申请10个大小的int空间,这个空间是在堆内存里申请的

if(NULL != a)

{

  for(int i=0;i<10;i++)

  a[i]=i+1;//给数组赋值

}

else

{

printf("没有申请成功")

}

free(a);</span>



这里值得一提的是,malloc()函数返回值 是 void * (任意类型的指针) 这里我们的a是int型指针,所以我们需要强制类型转换,就是在前面加上(int*)、另外申请 (new/malloc)出来的对象,都要判断一下是否为null,这样是一个好习惯,并且在使用完后要free()释放掉它、

free()函数的使用必须包含 #include<stdlib.h>头文件




                                           嘿嘿,指针目前也不需要学那么深,一点一点来,因为数据结构中指针用也就这么多。

指针的数组

标签:style   blog   color   使用   for   sp   文件   数据   on   

原文地址:http://blog.csdn.net/xiaxiang123/article/details/40833337

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!