使用VS2010调试技巧让C指针无处遁形

来源:互联网 发布:java 运行lua 编辑:程序博客网 时间:2024/05/03 07:44

文章出处:http://blog.csdn.net/21aspnet/article/details/6723758


Linux 下调试远没有windows下的VS方便,不管是VC++6还是VS2003,2005,2008,2010,2012.

VS2012自动格式化代码 Ctrl+K+D

所以我觉得不妨用VS调试程序,可以用VS来研究C语言似乎是一个比较不错的主意,当你的C已经很好的时候可以直接在Linux下去手写代码了。

当然windows下写的C程序放到Linux下运行,也是可以的,不过需要知道的是有些语法Windows下支持但是Linux下是不支持。

还有时会有乱码,需要注意!注意!

其实微软是希望用C++的,所以默认VS2010是用来开发C++的。准确的说是VC++。

 

首先装好VS2012.

新建一个VC++的 win32控制台项目:

 

然后“欢迎使用 Win32 应用程序向导”下一步,需要注意的是附加类型勾上“空项目”,再完成

 

系统自动生成解决方案文件夹,在右侧“解决方案”中的“源文件”中新建文件即可。

 

弹出的窗口默认选中的是C++的cpp文件,你只要将文件名改为.c即可,也可以点左边“代码”菜单筛选下。

 

自己写代码:

[cpp] view plaincopy
  1. #include <stdio.h>  
  2. main()  
  3. {  
  4.     int a=1;  
  5.     int * b=&a;  
  6.     printf("%d",b);  
  7.   
  8. }  


然后在printf处设置断点。

 

按F5启动调式。

在“监视”窗口,你可以自己添加需要监视的元素,很清晰的看到内存的值在右侧。

也可以使用 命令和即时窗口 有兴趣可以自己研究。

 

再来看看字符串指针:

[cpp] view plaincopy
  1. #include <stdio.h>  
  2. main()  
  3. {  
  4.     //int a=1;  
  5.     //int * b=&a;  
  6.     char * c="abcama1w";  
  7.     char *d=c;  
  8.     printf("%s",d);  
  9.   
  10. }  

是不是很清晰。

再看数组

[cpp] view plaincopy
  1. #include <stdio.h>  
  2. main()  
  3. {  
  4.     //int a=1;  
  5.     //int * b=&a;  
  6.     char c[12]="abcama1w";  
  7.     char *d=c;  
  8.     printf("%s",d);  
  9.   
  10. }  


下面这张图更清晰的反映数组和指针的关系

再看看d