鱼C论坛

 找回密码
 立即注册
楼主: newmonk

[技术交流] 看了这张图你马上明白什么是变量、指针和地址值(更正)

  [复制链接]
发表于 2014-5-10 18:15:34 | 显示全部楼层
愚见,仅供参考!
请对照图片顺序往下查看...

1. 建议修正用语
*无“地址值”一说吧,“地址”这个概念还可以分的更小吗?

变量      变量的地址    地址中存储段内容
i         0012ff74      778899aa
p(非*p,int *是p的类型)   
...

变量:有2样重要的东西,它的地址以及它的(值的)类型(类型同时定义了数据长度);最后才是它的值!


2. 多处错误
[ebp-8] = 0012ff74     应为    ebp-8 = 0012ff74


3. 不可思议的地方
为什么非要把指针当成所谓的“一种特殊的变量”?请仔细斟酌上面“变量”的说明。
为啥人们总是喜欢“创造”更多的概念让自己变得晕乎呢?
不过这好像是M$的传统...看看Windows编程便可略知一二


4. 关于[],请思考
lea eax, dword ptr ss:[ebp-8]
这一句取的又是啥呢?


我的建议
1. 请参考nasm关于取地址与取值与masm的不同点

2. 多看看c代码对应的汇编输出,多单步调试

3. c中的参数是按值传递的!
   请不要对此句话不以为然!

   提供两个小例子

//例1
#include <stdio.h>

void SwapAddress(int *a, int *b)
{
    int *t;
   
    t = a;
    a = b;
    b = t;
}

int main(int argc, char *argv[])
{
    int i = 123, j = 888;
    int *pi = &i, *pj = &j;
   
    printf("address of i: %p, address of j: %p\n", pi, pj);

    SwapAddress(pi, pj);

    printf("\n***AND NOW***\n");
    printf("value of pi: %p, value of pj: %p\n", pi, pj);

    return 0;
}

//例2:
#include <stdio.h>

void SwapAddress(int **a, int **b)
{
    int *t;
   
    t = *a;
    *a = *b;
    *b = t;
}

int main(int argc, char *argv[])
{
    int i = 123, j = 888;
    int *pi = &i, *pj = &j;

    printf("address of i: %p, address of j: %p\n", pi, pj);

    SwapAddress(&pi, &pj);

    printf("\n***AND NOW***\n");
    printf("value of pi: %p, value of pj: %p\n", pi, pj);

    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-10 16:35:45 | 显示全部楼层
掉掉掉地啊欧弟啊欧弟啊欧弟啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-10 13:47:36 | 显示全部楼层
新手学习中,感谢楼主
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-10 13:25:20 | 显示全部楼层
感谢分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-10 13:01:27 | 显示全部楼层
C指针现在理解了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-10 11:36:21 | 显示全部楼层
        热爱鱼C^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-10 11:02:36 | 显示全部楼层
很难理解汇编语言的变量和取值,,,,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-10 10:58:45 | 显示全部楼层
谢谢非常 需要
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-10 10:53:52 | 显示全部楼层
这么神奇的兔兔~~~~~~~~~~~~!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-10 10:41:25 | 显示全部楼层
谢谢非常 需要
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-10 10:24:58 | 显示全部楼层
好图 非常好 值得一看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-10 10:09:03 | 显示全部楼层
看看能不能对我有帮助支持一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-10 08:50:44 | 显示全部楼层
谢谢分享啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-10 06:54:05 | 显示全部楼层
看看能不能对我有帮助支持一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-9 23:28:25 | 显示全部楼层
看看能不能对我有帮助支持一下:big
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-9 23:27:44 | 显示全部楼层
支持一下:big
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-9 15:48:56 | 显示全部楼层
支持一下!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-9 11:32:07 | 显示全部楼层
指针搞懂还真要些时间
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-8 22:05:13 | 显示全部楼层
学习学习!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-8 22:04:01 | 显示全部楼层
必须一定要回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-29 04:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表