这门课用Linux教学且编码就是为了让你更好了解一下底层原理,以前大学那会儿学不就是什么也不懂就瞎敲一通吗,我是做JS的,重新学C就是越来越意识到了解底层编码的重要性了。当然这课我还是在Win下学的,用`Cmder`代替Win自带的cmd,课程中linux的大部分命令都能用`Cmder`在Win下实现。以前老用到`ls`,`ll`,`rm`,`touch`,`mkdir`...现在才知道原理竟然是这样的。我觉得挺好的,新手不想用vim的话完全可以用`sublime`,在`cmder`中直接`subl main.c`,就可以创建并编辑该文件了,就跟`vim main.c`一个样
2017-06-10
把change里面的参数改成x,y就好理解了。 传入change的时候,“理解上“可以是 x=&a,x得到的是a的地址, 然后*x就是该地址的值。 我们修改*x 其实就是修改a的值。
2017-06-07
int *pa=&a;把a这个变量所在的内存地址赋给了pa这个变量,pa也是一个变量,pa这个变量所指向的内存是地址是0x7fffffffde08,这个地址保存的数据就是pa里面的东西0x7fffffffddfc
2017-06-04
最赞回答 / Mrwhatsup
函数每次调用都会有他独立的栈帧,是从是从高地址向低地址延伸的,栈帧底部为高地址,栈顶为低地址。相当于分配了一段固定的内存空间。而定义的变量在这段空间内部,地址是由低到高的。
2017-06-02
最赞回答 / popo3418953
一般把源代码编译完成为目标文件的代码就存在代码段;调用的函数指针的顺序就存放在栈内存,可以理解为栈的先进后出就是函数的调用的顺序;打印函数内部变量在代码段的存储位置:首先要用bt 显示你的栈内存顺序,再用f + 编号,进去你想打印变量所在的函数里面,再用p+ &变量名字,即可打印;
2017-06-01