| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1929 人关注过本帖
标题:c语言指针问题--非高手勿进
只看楼主 加入收藏
avator123
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2010-12-3
结帖率:80%
收藏
已结贴  问题点数:10 回复次数:31 
c语言指针问题--非高手勿进
#define ICU_BASE  0x00001010
#define ICGU     *((volatile uint *) (ICU_BASE + 0x0480)) //谁能给解释一下这句。
本人菜鸟。。。
(volatile uint *) (ICU_BASE + 0x0480) 表示地址 ICU_BASE + 0x0480 所保存的数据,对吗?为什么还要再加一个*,弄成双指针??


搜索更多相关主题的帖子: c语言 指针 
2010-12-03 16:55
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
收藏
得分:1 
我不是高手 就进了 你能怎么样
2010-12-03 17:28
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
收藏
得分:1 
我手贱~
我承认,我手贱~
2010-12-03 17:32
jhua0904123
Rank: 1
等 级:新手上路
帖 子:1
专家分:1
注 册:2010-12-3
收藏
得分:1 
看到标题就不爽!
我想很多人知道答案!!!!
我承认,我手贱~
2010-12-03 17:41
DreamSkyCC
Rank: 2
来 自:河北赵县
等 级:论坛游民
帖 子:40
专家分:58
注 册:2010-11-28
收藏
得分:1 
#define ICU_BASE  0x00001010
#define ICGU     *((volatile uint *) (ICU_BASE + 0x0480))
其中 (volatile uint *)(ICU_BASE + 0x0480) 表示把这个数据强制转换为指针类型。
再加一个指针 表示取出这个地址单元的内容

希望能帮到你!

努力总会有收获!
2010-12-03 17:41
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
收藏
得分:1 
我是低手 可我就进来了 你能怎么滴 你来咬我啊

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2010-12-03 19:11
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:1 
我手也贱   但是你的这个不是什么难问题  我好想还能解决
(volatile uint *) (ICU_BASE + 0x0480) 表示地址 ICU_BASE + 0x0480 所保存的数据,对吗?
我可以告诉你  错!  那是强制类型转化  你没学过吗?
转化完了 还是地址   再加*  就是取出内容  要不你给我解释下下面的指针 敢不?
程序代码:
int main()
{
  int a[3][4]={6,29,22,12,5,18,21,36,33,19,66,32};                    /*定义一个3 * 4的二维数组*/
  int i,j=0,(*p)[4]=a,*q=a[0];                                        /*定义一个指向一个长度为4的数组的指针p,定义一个指针q,指向a数组的首地址*/
  for( i = 0; i < 3; i++)
  {
      if( i == 1)
      {
          (*p)[i+i/2]=*q+1;                                                                      
      }
      else
      {
          p++;                                                      
          ++q;                                                           
      }
  }
  cout<<"a[i][j]\n";

  for(i=0;i<3;i++)
  {
      for ( j = 0; j < 4; j++)
      {
          cout << a[i][j] <<" ";
      }
      cout << endl;
  }
  cout<<endl;
  cout<<"*((int *)p)="<<*((int *)p)<<"* q="<<*q<<endl;

  return 0;
}
如果你没学过C++  我告诉你   cout《《就是输出的意思   你解释下

                                         
===========深入<----------------->浅出============
2010-12-03 19:28
zghnxzdcx
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:550
专家分:1176
注 册:2010-4-6
收藏
得分:1 
真正的高手绝对不会以高手自居

你永远不可能战胜一个纯傻子,因为他会把你的智商拉到和他同一个水平,然后用他的丰富经验打败你。
2010-12-03 20:01
外部三电铃
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:那一年
等 级:贵宾
威 望:57
帖 子:2012
专家分:7306
注 册:2007-12-17
收藏
得分:1 
欠抽的标题

那一年,苍井空还是处女
2010-12-03 20:09
a343637412
Rank: 7Rank: 7Rank: 7
来 自:そ ら
等 级:黑侠
帖 子:357
专家分:620
注 册:2010-9-26
收藏
得分:1 
我也手贱,
楼上的代码让我受益不少,
我搞了不少时间才懂....
2010-12-03 20:21
快速回复:c语言指针问题--非高手勿进
数据加载中...
 
   



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

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