| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1048 人关注过本帖
标题:*p++与(*p)++的问题
只看楼主 加入收藏
怎么说呢
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2018-10-19
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:1 
*p++与(*p)++的问题
#include<stdio.h>
int main()
{
    char a[] = "abc";
    char *p;
    int i;

    p=a;
    for(i=0;i<3;++i)
    printf("%c\n",*p++);
    printf("a=%s\n",a);
    p=a;
    for(i=0;i<3;++i)
        printf("%c\n",(*p)++);
    printf("a=%s\n",a);
    return 0;
}
-------------------------
结果:a  b  c    a=abc
      a  b  c    a=dbc
-------------------------
我想知道 a=dbc 中的 d 怎么来的,求助
搜索更多相关主题的帖子: char abc for ++i printf 
2018-12-09 11:24
Mr_doge
Rank: 5Rank: 5
等 级:贵宾
威 望:10
帖 子:159
专家分:385
注 册:2018-6-28
收藏
得分:20 
前一个循环为地址+1循环
后一个为p[0]内数值自增循环
循环3次自增后,p[0]内的数值就是'd'的ascii数值
p[0]是'a','a'++就是'b',以此类推,3次后p[0]的数值变成'd'的ascii数值了,此时打印a[]或者p[],就会变成"dbc"。
2018-12-09 14:32
快速回复:*p++与(*p)++的问题
数据加载中...
 
   



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

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