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

关于C语言: 初始化一个指向数组的指针变量为什么不需要&符号?

时间:2015-05-31 19:57:09      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

C语言中数组名就是第一个元素的地址,所以可以直接把它赋给一个指针,不需要取地址。

1  void InitBiTree(SqBiTree T)
2  { // 构造空二叉树T。因为T是数组名,故不需要&
3    int i;
4    for(i=0;i<MAX_TREE_SIZE;i++)
5      T[i]=Nil; // 初值为空(Nil在主程中定义)
6  }

上述初始化代码中T是一个数组名,也就代表了数组的首地址,是一个地址,就不需要取地址符。

如下边初始化就不一样

1  void InitString(HString &T)     
2   { // 初始化(产生空串)字符串T。
3     T.length=5;
4     T.ch="hhhhh";
5   }
6  

产生的字符串T是不是一个地址,所以需要加上取地址符,才能对字符串T进行初始化,改变它内部的值。如果不加的话,只是在这个函数在主函数执行时,在内存中分配另一段存储去存储,在函数执行完时,内存被分配会被收回,就没有改变原来的字符串的值。

关于C语言: 初始化一个指向数组的指针变量为什么不需要&符号?

标签:

原文地址:http://www.cnblogs.com/huihuidai/p/4542442.html

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