wow7jiao 发表于 2018-6-21 14:22:45

请前辈指点, C指针的取址&和取值*

本帖最后由 wow7jiao 于 2018-6-21 14:27 编辑

我现在正在学习《小甲鱼老师的带你学C带你飞》,21课到24课,我发现取址&和取值*,普通常量,一维数组,二维数组里面表示都不一样,不是和逻辑关系一一对应的,现在归纳不了拉,看了C和指针也还没理解,不知道什么时候恰当使用*和&了。
想请前辈指点我学习C指针方式,一,是死记不同* 和 &用法,不死钻牛角尖了;还是继续死磕*和&比较好。

人造人 发表于 2018-6-21 14:22:46

想要深入理解C语言,汇编语言是必须的,尤其是理解指针部分

BngThea 发表于 2018-6-21 14:24:25

初学者容易绕晕也正常,多写代码多试错,多看看别人代码怎么用的,熟悉了以后就好多了

人造人 发表于 2018-6-21 14:34:54

你是想把 《带你学C带你飞》这个系列学完就学好C语言吗?
你错了,这是不可能的
先把这个系列学完,之后学习汇编语言
之后带着汇编语言重新学一次C语言
然后看好多关于C语言的书,带着汇编语言看这些书(例如 C和指针之类的)

目前继续往后学就行了,不要死磕指针,听说指针是C语言的重点也是难点,这是真的吗?
如果是,那么你认为就以你目前的学识能够掌握吗?

wow7jiao 发表于 2018-6-21 14:48:30

本帖最后由 wow7jiao 于 2018-6-21 15:05 编辑

人造人 发表于 2018-6-21 14:36
想要深入理解C语言,汇编语言是必须的,尤其是理解指针部分

我已经看完了2遍王爽 汇编,题目也作完了,随便问一下你那个反汇编的软件是什么? 王爽版本的汇编语法是intel格式的,linux是AT&T 格式。
AT&T 格式

Intel 格式


pushl %eax

push eax


其实我用看过小甲鱼老师OD的反汇编,但是OD好像过时了,我现在一直没搞明白您用的什么反汇编,在什么平台下,用了虚拟机吗?

人造人 发表于 2018-6-21 15:11:50

wow7jiao 发表于 2018-6-21 14:48
我已经看完了2遍王爽 汇编,题目也作完了,随便问一下你那个反汇编的软件是什么? 王爽版本的汇编语法 ...

哪个?
给个链接
截个图也可以

wow7jiao 发表于 2018-6-21 15:13:06

人造人 发表于 2018-6-21 15:11
哪个?
给个链接
截个图也可以

http://bbs.fishc.com/thread-117200-1-1.html

wow7jiao 发表于 2018-6-21 15:18:06

人造人 发表于 2018-6-21 15:22:59

vs2017


人造人 发表于 2018-6-21 15:25:15

学过汇编语言就好说了
能看懂这个吗?
#include <stdio.h>

int main(void)
{
010BF840push      ebp
010BF841mov         ebp,esp
010BF843sub         esp,0D8h
010BF849push      ebx
010BF84Apush      esi
010BF84Bpush      edi
010BF84Clea         edi,
010BF852mov         ecx,36h
010BF857mov         eax,0CCCCCCCCh
010BF85Crep stos    dword ptr es:
        int a = 100;
010BF85Emov         dword ptr ,64h
        int *p = &a;
010BF865lea         eax,
010BF868mov         dword ptr ,eax

        printf("%d\n", *p);
010BF86Bmov         eax,dword ptr
010BF86Emov         ecx,dword ptr
010BF870push      ecx
010BF871push      1153E50h
010BF876call      010BBD9B
010BF87Badd         esp,8
        return 0;
010BF87Exor         eax,eax
}
页: [1]
查看完整版本: 请前辈指点, C指针的取址&和取值*