| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2171 人关注过本帖
标题:菜鸟求大神帮助,关于int *pa=a;的问题
只看楼主 加入收藏
wz1193070158
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2017-5-20
结帖率:0
收藏
已结贴  问题点数:20 回复次数:7 
菜鸟求大神帮助,关于int *pa=a;的问题
关于一道小程序的问题。
程序代码:
#include<stdio.h>
void main()
{
    int a[]={1,2,3,4,5,6,7,8,9};
    int i;
    int *pa;
    pa=a;
    for(i=0;i<9;i++)
    {
        printf("%d\n",*pa);
        pa++;
    }

}

。。。。。。。。。。。。。。。。。。。。。。。。
程序代码:
#include<stdio.h>
void main()
{
    int a[]={1,2,3,4,5,6,7,8,9};
    int i;
    int *pa=a;
    for(i=0;i<9;i++)
    {
        printf("%d\n",*pa);
        pa++;
    }

}

上面两种形式能够得到同样的形式,但是不懂为什么能够写成int *pa=a;这种形式。
然后按照第二种写法,写成下面这种形式,就是错的了
程序代码:
#include<stdio.h>
void main()
{
    int a[]={1,2,3,4,5,6,7,8,9};
    int i;
    int *pa;
    *pa=a;
    for(i=0;i<9;i++)
    {
        printf("%d\n",*pa);
        pa++;
    }

}

为什么第二种写法可行,而第三种就不行了?
菜鸟求大神解答

指针问题2.PNG (4.06 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: int for i++ printf 形式 
2017-05-20 18:12
wz1193070158
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2017-5-20
收藏
得分:0 
2017-05-20 18:14
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:7 
int *pa;
定义pa是一个int指针。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-20 18:14
wz1193070158
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2017-5-20
收藏
得分:0 
回复 3楼 renkejun1942
第一种写法我是明白的,第二种写法今天第一次看到,就不是特别明白,然后要是第二种成立的话,为什么第三种又是不行的?
2017-05-20 18:18
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
第二种写法,等同于

int *pa
pa = a

PS:难道你从来没见过在定义变量的时候,顺手给变量赋一个值?

int *pa = a;

int a  = 2;

有区别吗?

[此贴子已经被作者于2017-5-20 18:21编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-20 18:19
wz1193070158
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2017-5-20
收藏
得分:0 
回复 5楼 renkejun1942
哦哦哦,那我懂了,因为今天刚学到这,看到这种写法就懵逼了,谢谢指点
2017-05-20 18:26
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:7 
其实 pa的数据为int* 型~声明时int* 是一个整体~所以我习惯写int* pa而不是int *pa~~~~当然这是个习惯问题并不代表这样写比较好~关键还是要自己理解~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-21 13:02
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10570
专家分:43038
注 册:2014-5-20
收藏
得分:7 
以下是引用九转星河在2017-5-21 13:02:10的发言:

其实 pa的数据为int* 型~声明时int* 是一个整体~所以我习惯写int* pa而不是int *pa~~~~当然这是个习惯问题并不代表这样写比较好~关键还是要自己理解~

有差别的。
从阅读来说,int* pa; 好理解点。
但从一些习惯的表达方式,如 int* p1, p2; 这时 p1 明显是指针类型,那么p2是什么类型?
int *p1, *p2; 这种写法比较明确。
int* p1, p2; 这就有可能会表错情。
2017-05-21 15:46
快速回复:菜鸟求大神帮助,关于int *pa=a;的问题
数据加载中...
 
   



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

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