| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 503 人关注过本帖
标题:大家帮忙看下这个程序!
只看楼主 加入收藏
hyping85
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-11-26
收藏
 问题点数:0 回复次数:3 
大家帮忙看下这个程序!
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int *pn,n,m;
    printf("请输入n=");
    scanf("n=%d",&n);
    pn=&n;printf("pn=%d\n",pn);
    m=*pn++; printf("m=%d",m);printf("pn=%p",pn);printf("m=%p\n",m);
    m=*++pn; printf("m=%d",m);printf("m=%p\n",m);
    m=(*pn)++;printf("m=%d",m);printf("m=%p\n",m);
    m=++(*pn);printf("m=%d",m);printf("m=%p\n",m);
    
    system("pause");
}
m=*++pn; printf("m=%d",m);printf("m=%p\n",m);
m=(*pn)++;printf("m=%d",m);printf("m=%p\n",m);

这两行运行的确一样的,怎么回事来的?
m=*++pn; printf("m=%d",m);printf("m=%p\n",m);这行不太懂来的?请问各位高手是什么意思来的?
m=(*pn)++;printf("m=%d",m);printf("m=%p\n",m);这行是不是先用指针,再在指针的值上加1呀?
搜索更多相关主题的帖子: include system 
2008-12-09 18:47
cn9069
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-12-9
收藏
得分:0 
int * 指针类型每次++,指针本身值自加4,因Windows下,1个 int 占4字节
m=*++pn;   // 先将pn指针值指向下一单元,再将该单元的值赋给 m
m=(*pn)++; // 先将pn指向的单元值赋给m, 然后该单元内容值自加1
所以,
m=*++pn; printf("m=%d",m);printf("m=%p\n",m);
m=(*pn)++;printf("m=%d",m);printf("m=%p\n",m);
这两行的 m 取得都是同一个单元的数,值相同。在m=(*pn)++;后,该单元内容值自加1
2008-12-09 19:21
peng_piao
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2008-11-5
收藏
得分:0 
最好不要进行一些*p++
或者*(++)p之类的的计算,实际中不怎么用的
2008-12-09 21:01
hyping85
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-11-26
收藏
得分:0 
谢了
2008-12-12 20:43
快速回复:大家帮忙看下这个程序!
数据加载中...
 
   



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

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