| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3115 人关注过本帖
标题:怎么理解x[i]?是数组呢?还是指针下标
只看楼主 加入收藏
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
结帖率:100%
收藏
 问题点数:0 回复次数:7 
怎么理解x[i]?是数组呢?还是指针下标
程序代码:
void scott(int *x, int n)
{
    int i, j, m, t;
    for (i = 0; i < n - 1; i++)
    {
        m = i;
        for (j = i + 1; j < n; j++)
            if (x[j] > x[m])
                m = j;
        if (m != i)
        {
            t = x[i];
            x[i] = x[m];
            x[m] = t;
        }
    }
}
2017-01-11 20:22
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
这是指针地址啊,怎么可以?
程序代码:
void scott(int *x, int n)
{
    int i, j, m, t;
    for (i = 0; i < n - 1; i++)
    {
        m = i;
        for (j = i + 1; j < n; j++)
            if (x[j] > x[m])
                m = j;
        if (m != i)
        {
            t = x[i];
            x[i] = x[m];
            x[m] = t;
        }
    }
}

#include<stdio.h>
int main()
{
    void scott(int *x, int n);
    int a[10] = { 0,1,2,3,4,5,6,7,8,9 };
    int *p;
    int i;
    p = a;
    scott(p, 10);
    for (p = a, i = 0; i < 10; i++)
        printf("%d ", *p++);
    printf("\n");
    return 0;
}
2017-01-11 20:32
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
x[i]等价于*(x+i)。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-01-11 20:33
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
数组名本来就是一个地址,数组名不可以使用自增、自减运算符,但指针可以。

如果我没记错的话。

[此贴子已经被作者于2017-1-11 20:49编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-01-11 20:35
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
回复 4楼 renkejun1942
哦,谢谢
2017-01-11 20:38
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
数组或指针只是一个名堂,实质是一样,都是存放在内存的数据,都具有地址和大小属性,只是表现或表达形式不同。
2017-01-11 20:54
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用renkejun1942在2017-1-11 20:35:20的发言:

数组名本来就是一个地址,数组名不可以使用自增、自减运算符,但指针可以。

如果我没记错的话。

应该没记错,数组名表达的是数据的基址,基址是不能改变的,数组下标表达的是数据地址的偏移量。
2017-01-11 21:24
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
收藏
得分:0 
回复 4楼 renkejun1942
指针变量可以自增减,指针常量是地址不可以自增减,我们平常说的指针通常指针变量的简称。

Code is my life.
2017-01-11 21:39
快速回复:怎么理解x[i]?是数组呢?还是指针下标
数据加载中...
 
   



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

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