| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1341 人关注过本帖
标题:指针的疑惑!
只看楼主 加入收藏
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
结帖率:89.47%
收藏
已结贴  问题点数:100 回复次数:22 
指针的疑惑!
多维数组和指针的内容  a[n][n]为二维数组!!

&*a[i]为什么和a[i]等价??

*p是怎样运算的?((*p)操作是这样一种运算,返回p 的值作为地址的那个空间的取值)不太理解这句话的意思!

&p又是怎样运算的??

解释的越详细越好!
搜索更多相关主题的帖子: 空间 
2013-08-28 12:45
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:0 
还有 *&p=p??

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-08-28 12:48
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
感觉指针这东西  最好还是用具体事例讲 比较好  

DO IT YOURSELF !
2013-08-28 13:38
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:10 
&p就是取其地址值,把p的地址值赋值给变量存储

思考赐予新生,时间在于定义
2013-08-28 13:56
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:10 
接分
2013-08-28 14:09
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:10 
学习接分~

授人以渔,不授人以鱼。
2013-08-28 14:13
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
我写了一个测试案例 不知道是否对楼主有帮助
程序代码:
#include <stdio.h>

int main()
{
    int i,j;
    long test[2][3]={0};
    char* a[2][3]={"aaa","bbb","ccc","111","222","333"};
    //首先确定变量  a  的地址
    printf("变量a的首地址=0x%X\n",&a);
    //获取变量 a 所存放的6个指针元素的地址
    for(i=0;i<2;i++)
    {
        for(j=0;j<3;j++)
        {
            printf("变量a的第%d个元素的地址=0x%X\n",i*3+j+1,&a[i][j]);
        }
    }
    //下面看一看变量 a 这6个元素里面存放的都是啥  注意 上面是地址  这里是数据
    //同时保存这个元素,以备下面测试用
    for(i=0;i<2;i++)
    {
        for(j=0;j<3;j++)
        {
            printf("变量a的第%d个元素=0x%X\n",i*3+j+1,a[i][j]);
            test[i][j]=(long)a[i][j];   //对字符的具体位置(指针)进行保存
        }
    }
    //下面,我们根据新保存的数据进行寻址,输出字符串
    for(i=0;i<2;i++)
    {
        for(j=0;j<3;j++)
        {
            printf("变量a的第%d个元素所指向的字符串是%s\n",i*3+j+1,test[i][j]);
        }
    }
    return 0;
}    
/*
以下是我在本机上的测试案例  当然具体数据肯定不一致,内存瞬息变化万千

变量a的首地址=0x12FF10
变量a的第1个元素的地址=0x12FF10
变量a的第2个元素的地址=0x12FF14
变量a的第3个元素的地址=0x12FF18
变量a的第4个元素的地址=0x12FF1C
变量a的第5个元素的地址=0x12FF20
变量a的第6个元素的地址=0x12FF24
变量a的第1个元素=0x4157D4
变量a的第2个元素=0x4157D0
变量a的第3个元素=0x4157CC
变量a的第4个元素=0x4157C8
变量a的第5个元素=0x4157C4
变量a的第6个元素=0x4157C0
变量a的第1个元素所指向的字符串是aaa
变量a的第2个元素所指向的字符串是bbb
变量a的第3个元素所指向的字符串是ccc
变量a的第4个元素所指向的字符串是111
变量a的第5个元素所指向的字符串是222
变量a的第6个元素所指向的字符串是333
*/




DO IT YOURSELF !
2013-08-28 14:26
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:10 
只能接分!

仰望星空...........不忘初心!
2013-08-28 14:36
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:10 
为什么挪到水区来?c区挺好的

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-08-28 15:34
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
对于指针来说,& 和 * ,
&是取指针的地址,也就是 &p 就是个内存地址了,该地址存储的只就是p指针。
而* ,*p就是去指针执行地址的内容。

打个比方,比如p是一个箭头,那么,&p就是保存这个箭头的空间(内存)了,而*p 就是取这个箭头所指向的数据了

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-08-28 15:40
快速回复:指针的疑惑!
数据加载中...
 
   



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

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