关于“指针与数组是一样的”的探讨

发表于:2007-05-25来源:作者:点击数: 标签:数组一样指针探讨关于
“指针与数组是一样的”对吗? 我认为此种说法欠妥! 首先,指针是变量而数组是常量,并且数组不是一种常指针。 因为:指针本身占有存储空间,而数组名a与其地址a是同一个值。 …… “指针与数组是一样的”对吗? 我认为此种说法欠妥! 首先,指针是变量而数

“指针与数组是一样的”对吗?

我认为此种说法欠妥!

首先,指针是变量而数组是常量,并且数组不是一种常指针。

因为:指针本身占有存储空间,而数组名a与其地址&a是同一个值。

……

“指针与数组是一样的”对吗?

我认为此种说法欠妥!

首先,指针是变量而数组是常量,并且数组不是一种常指针。

因为:指针本身占有存储空间,而数组名a与其地址&a是同一个值。

……

clearcase/" target="_blank" >cc" size="3">/*
**************************************************************************
*file name  : pointerVSarray.c
*description: 数组就是指针这句话对吗?
*note         : 我认为这句话不对。下面的程序在VC++6.0中运行结果显示:
                   a     : 12FF74
                  &a    : 12FF74
                 &a[0] : 12FF74
                   p     : 12FF74
                  &p    : 12FF70
                  由此可见:a和&a代表一个地址,数组名在内存中不占存储空间
                  而指针在内存中占据空间以一个变量的形式存储它所指向的变量
                  的地址
*author     : kernelxu
*version    : 1.0
*date        : 2005/04/04
**************************************************************************
*/

#include <stdio.h>
#include <stdlib.h>

/*
--------------------------------------------------------------------------
- function :          main()
--------------------------------------------------------------------------
*/


main()
{
     int a[3] = ;
     int *p;

     p=a;

     printf("a: %X\n",a);
     printf("&a: %X\n",&a);
     printf("&a[0]: %X\n",&a[0]);
     printf("p: %X\n",p);
     printf("&p: %X\n",&p);
 
     system("pause");

}/*main()*/

原文转自:http://www.ltesting.net

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)