请前辈指点, C指针的取址&和取值*
本帖最后由 wow7jiao 于 2018-6-21 14:27 编辑我现在正在学习《小甲鱼老师的带你学C带你飞》,21课到24课,我发现取址&和取值*,普通常量,一维数组,二维数组里面表示都不一样,不是和逻辑关系一一对应的,现在归纳不了拉,看了C和指针也还没理解,不知道什么时候恰当使用*和&了。
想请前辈指点我学习C指针方式,一,是死记不同* 和 &用法,不死钻牛角尖了;还是继续死磕*和&比较好。 想要深入理解C语言,汇编语言是必须的,尤其是理解指针部分
初学者容易绕晕也正常,多写代码多试错,多看看别人代码怎么用的,熟悉了以后就好多了 你是想把 《带你学C带你飞》这个系列学完就学好C语言吗?
你错了,这是不可能的
先把这个系列学完,之后学习汇编语言
之后带着汇编语言重新学一次C语言
然后看好多关于C语言的书,带着汇编语言看这些书(例如 C和指针之类的)
目前继续往后学就行了,不要死磕指针,听说指针是C语言的重点也是难点,这是真的吗?
如果是,那么你认为就以你目前的学识能够掌握吗?
本帖最后由 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好像过时了,我现在一直没搞明白您用的什么反汇编,在什么平台下,用了虚拟机吗?
wow7jiao 发表于 2018-6-21 14:48
我已经看完了2遍王爽 汇编,题目也作完了,随便问一下你那个反汇编的软件是什么? 王爽版本的汇编语法 ...
哪个?
给个链接
截个图也可以
人造人 发表于 2018-6-21 15:11
哪个?
给个链接
截个图也可以
http://bbs.fishc.com/thread-117200-1-1.html vs2017
学过汇编语言就好说了
能看懂这个吗?
#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]