09 2022 档案
摘要:今天看到一个很有意思的代码,一不小心,就会被绕进去,会对结果感到很奇怪,以为是编译器的bug 我们定义一个变量a,再获取一下这个变量对应的地址,后面会用到 获取到局部变量a存的地址为0028ff44,在我的C-Free上测试过,每次运行第一个局部变量都是这个地址。 例1: 执行完 *p=NULL 后
阅读全文
摘要:指针和数组很多情况下,用法差不多,数组也被隐性转换成指针用,但是不能说数组就是指针,代表的是完全不同的东西。 定义数组的时候会分配一些类型相同的元素空间,而指针只不过是指向某一类型空间的地址而已,本身是一个数据类型,类型的值就是一个地址而已。 之所以很多情况下感觉类似,是因为数组在除了&运算符或者s
阅读全文
摘要:指针一直是被很多人误解,包括很多书中对指针的定义也存在很大的歧义,导致看书的人越看越懵,所以指针到底是个什么东西?(注意:文中所有图片不表示实际内存大小,纯属为了画图需要) 指针是地址吗? 很显然指针不是地址,地址只是一个数值,这个数值不可能代表指针。如图 伪代码: int *ap = (int *
阅读全文
摘要:#include <stdio.h> int main() { char *a[]={ "Hello World" }; char b[]={ 'C','D' }; printf("%c",b); printf("\n"); printf("%s",b); } C语言中的数组名,是不可修改的变量,只
阅读全文
摘要:前一篇文章里看到在C-Free下调用gdb 可以显示源代码的汇编语言,但是默认其实不是用intel的指令格式显示的,而是用AT&T指令格式显示的汇编,如下 本人表示接触的是intel的指令,所以看这个总是怪怪的,我们可以在控制台命令里面输入 set disassembly-flavor intel
阅读全文
摘要:安装了C-Free, 如何调试的时候看到当前的汇编代码 按F9开始进入调试,然后选择C-Free工具栏 中的 “调试”>“控制台”,就可以看到调试的命令窗口,如下 可以看到其实调试用的是gdb这个应用程序,这个在程序在C-Free安装目录下能找到,名字就是gdb.exe。可以通过这个控制台窗口下面的
阅读全文

浙公网安备 33010602011771号