| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5158 人关注过本帖
标题:数组名他是一个变量吗?
只看楼主 加入收藏
qq312154421
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:124
专家分:120
注 册:2010-6-7
结帖率:86.36%
收藏
已结贴  问题点数:20 回复次数:9 
数组名他是一个变量吗?
# include <stdio.h>

int main(void)
{
    int a[4] = {1, 2, 3, 4};
    int b[4] = {5, 6, 7, 8};
    int * p;

    b = a;
    p = a;

    printf("%d\n", *a); //数组名也是一个变量
    printf("%d\n", p[0]);//p等价于a
    printf("%d\n", *b);

    return 0;
}

数组名他是一个变量吗?
搜索更多相关主题的帖子: void include return 
2012-01-08 01:24
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:2 
应该是,数组名只是一个地址,里面放的东西才是变量,你改变数组名的值实际上是改变了放在那个位置里面的值吧?
初学的,错了也别介意哦;
2012-01-08 01:29
kennel2009
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:45
专家分:157
注 册:2011-12-13
收藏
得分:2 
程序代码:
# include <stdio.h>

int main(void)
{
    int a[4] = {1, 2, 3, 4};
    int b[4] = {5, 6, 7, 8};
    int * p;

    b = a;    //此处是错的,因为b是个常量指针,也就是一个不可以改变的值,所以不能通过a赋给它
    p = a;
   
    printf("%d\n", a);   //数组名是个地址,是第一个元素的地址
    printf("%d\n", *a);  //所以此处才会返回第一个元素的值
    printf("%d\n", p[0]);
    printf("%d\n", *b);

    return 0;
}
为分而来呵...
2012-01-08 12:13
sn1992325
Rank: 2
等 级:论坛游民
帖 子:4
专家分:13
注 册:2011-12-21
收藏
得分:2 
数组名是地址
2012-01-08 12:20
love24114
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:223
专家分:399
注 册:2011-7-11
收藏
得分:2 
数组名相当于一个指针变量,指向数组开始的地址。
2012-01-08 12:21
tzhixin
Rank: 1
等 级:新手上路
帖 子:1
专家分:2
注 册:2012-1-8
收藏
得分:2 
常量。你不信就试试a++,b++,会报错。
2012-01-08 14:32
我爱胡萝卜
Rank: 2
等 级:论坛游民
帖 子:20
专家分:36
注 册:2011-10-3
收藏
得分:2 
数组名不是变量。。它指向的地址才是。。地址可以改变
2012-01-08 14:36
Frefreak
Rank: 2
等 级:论坛游民
帖 子:25
专家分:28
注 册:2011-7-4
收藏
得分:2 
请问动态分配内存得到的数组int array[N] = (int *)malloc( N * sizeof(int) )是不是允许出现array++ 这样的格式?
2012-01-08 21:03
ggyy4k
Rank: 5Rank: 5
等 级:职业侠客
帖 子:111
专家分:334
注 册:2010-6-28
收藏
得分:2 
以下是引用qq312154421在2012-1-8 01:24:36的发言:

# include

int main(void)
{
    int a[4] = {1, 2, 3, 4};
    int b[4] = {5, 6, 7, 8};
    int * p;

    b = a;
    p = a;

    printf("%d\n", *a); //数组名也是一个变量
    printf("%d\n", p[0]);//p等价于a
    printf("%d\n", *b);

    return 0;
}

数组名他是一个变量吗?
楼主的程序有问题
b = a;是不允许的,因为C不支持这种数组赋值方式。
数组名实际上是地址常量,标记数组的首地址,可以赋值给指针,所以p = a;是对的
2012-01-09 14:11
如果千寻
Rank: 1
等 级:新手上路
帖 子:1
专家分:2
注 册:2012-1-9
收藏
得分:2 
数组名是指针常量
2012-01-09 20:28
快速回复:数组名他是一个变量吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018019 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved