| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1385 人关注过本帖
标题:无聊,跟各位说说 & ++ -- 运算符
只看楼主 加入收藏
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
结帖率:100%
收藏
 问题点数:0 回复次数:12 
无聊,跟各位说说 & ++ -- 运算符
呵呵,
首先是
& 这个运算符是一个取地址运算符,
其实正确的定义指针,是这样的,int &p;
int a=7;
 a=a&(a-1)
这里的&(a-1)是a的的二进减一。7(0111)减一就是 0110 就是6
如果要输出地址的话,一般是,  printf("address  %x\n",a) 这个是十六进制的,感觉是 0x06h;
我说的这个运算符和后面二个也有关系。
++i和i++
这二个一个在前一个在后,,
先说 ++i 就是先把i加1,其实 是先取的i的地址,然后在加1 ; i++这个是先取得地址, 把加1放在寄存器中,然后就加1;
--和前面一样,呵呵,

[[italic] 本帖最后由 missiyou 于 2007-12-10 00:14 编辑 [/italic]]
搜索更多相关主题的帖子: 运算符 
2007-12-09 22:18
闪闪4521
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-11-30
收藏
得分:0 
int     a=a&(a-1);
这一句不知道是什么意思难道就是a = a-1?
2007-12-09 22:27
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
原帖由 [bold][underline]闪闪4521[/underline][/bold] 于 2007-12-9 22:27 发表 [url=http://bbs.][/url]
int     a=a&(a-1);
这一句不知道是什么意思难道就是a = a-1?



位操作.

倚天照海花无数,流水高山心自知。
2007-12-09 22:44
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
收藏
得分:0 
这个是,int a=a&(a-1)
意思就是取a的地址就是&(a-1)其实是 &(a)是(0111)然后在减去1这个1是二进制当中的1。然后在把这个取过地址而且地址也运算过了一个地址,这我认为,改变了,内存中存储的位置,然后在把它从重给a, 也就是相当于从新定义了a
也就想当,int *p=&a;
                   *p =5;那么a值也改变了,也就变成了5,
2007-12-09 22:49
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
int a=7;
int a=a&(a-1);//这一句有问题
因为a以定义并初始化不能再次定义.
2007-12-09 22:55
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
   printf("%s\n",argv[0]);//这个是你这个程序放在那;
  int a=7;
  a=a&(a-1);
  printf("is a=%d\n",a);
  printf("is a=%x\n",a);
  a=a&(a-1);
  printf("is a=%d\n",a);
  printf("is a=%x\n",a);
  a=a&(a-1);
  printf("is a=%d\n",a);
  printf("is a=%x\n",a);
  system("PAUSE");    
  return 0;
}

我说没问题,你不信,去试试

[[italic] 本帖最后由 missiyou 于 2007-12-10 00:29 编辑 [/italic]]
2007-12-10 00:09
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
回复楼上你把第八行的a前再加一(int)试一试.
2007-12-10 00:49
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
本来很好理解的东西,给LZ一说就无法理解了....

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-12-10 07:59
C语言的深度
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:卡特的怀抱
等 级:版主
威 望:1
帖 子:9577
专家分:19
注 册:2007-10-22
收藏
得分:0 
额 同LS的!
本来我很清楚的!
看下LZ的!我晕了

用代码打出楼房...用编程编出幸福...
2007-12-10 09:24
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
收藏
得分:0 
,地址,真的不好懂,

[[italic] 本帖最后由 missiyou 于 2007-12-10 21:15 编辑 [/italic]]
2007-12-10 20:56
快速回复:无聊,跟各位说说 & ++ -- 运算符
数据加载中...
 
   



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

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