| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1249 人关注过本帖
标题:关于“++、*、=”优先级的问题!
只看楼主 加入收藏
Yuzai酱
Rank: 2
等 级:论坛游民
帖 子:18
专家分:67
注 册:2016-1-4
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
关于“++、*、=”优先级的问题!
今天做《c和指针》的练习题,是关于倒置的,虽然没看答案自己也敲出来了,但是看完作者的代码,我就惊呆了,写了如此简练,但是里面有两句我是怎么也转不过弯来,来大神给我解释解释!
1.temp = *str;
2.*str + + = *last_char;
3.last_char - - = temp;

“*”和“++”是一个优先级,
那为什么是赋完值地址在自增那。
我怎么那么别扭,不明白!
搜索更多相关主题的帖子: 练习题 优先级 
2016-02-02 20:53
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:4 
这个最烦人了,我是不明白这样的代码除了装B有什么好处。代码还是以简洁明了为好,不要死钻研这些东西。

   唯实惟新 至诚致志
2016-02-02 22:36
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9029
专家分:54050
注 册:2011-1-18
收藏
得分:4 
除了优先级外,还有结合方向
*str++ 等同于 *(str++)
2016-02-03 08:46
Yuzai酱
Rank: 2
等 级:论坛游民
帖 子:18
专家分:67
注 册:2016-1-4
收藏
得分:0 
程序代码:
/*
    自己动手丰衣足食,我琢磨出来了,放出来大家讨论一下
    其实就是“前自增”和“后自增”的问题~!就这么简单,哎
    脑袋有时候短路呀~!
*/
#include<stdio.h>

int main(void)
{
    char a[5] = "12345";

    char *p;
    int i = 0;
    printf("\n");
    p = a ;
    printf("a[0]%p\n",a[0]);
    printf("a[1]%p\n",a[1]);
    printf("a[2]%p\n",a[2]);
    printf("a[3]%p\n",a[3]);
    printf("a[4]%p\n",a[4]);
    printf("*************************************\n");
    printf("char a[5] = “12345”\n");
    printf("****《 p = a;》*****************\n");
    printf("“p”所指向的值是:%c\n",*p);
    printf("“p”的指针地址是:%p\n",*a);
    printf("*************************************\n");
    *p++ = 'A';
    printf("******《*p++ = 'A';后》**************\n");
    printf("*p值%c\n",*p);
    printf("*p地址%p指向a[1]\n",*p);
    printf("a[0]的值是:%c\n",a[0]);
    printf("a[0]的地址是: %p\n",a[0]);
    printf("**************************************\n");

    *--p = 'Z';
    printf("******《*--p = 'Z';后》**************\n");
    printf("p所指向值是:%c\n",*p);
    printf("p的指针地址是:%p\n",*p);
    printf("a[0]的值是:%c\n",a[0]);
    printf("a[0]的地址是: %p\n",a[0]);
    printf("**************************************\n");

    printf("a[0]%p\n",a[0]);
    printf("a[1]%p\n",a[1]);
    printf("a[2]%p\n",a[2]);
    printf("a[3]%p\n",a[3]);
    printf("a[4]%p\n",a[4]);

    return 0;
}

图片附件: 游客没有浏览图片的权限,请 登录注册

然后是福利,附上一张我的女神,哈哈~!
图片附件: 游客没有浏览图片的权限,请 登录注册

2016-02-04 00:02
快速回复:关于“++、*、=”优先级的问题!
数据加载中...
 
   



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

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