#include "stdio.h"
void f1(int a[5]);
int main(void)
{
int a[5];
f1(a);
return 0;
}
void f1(int a[5])
{
int i;
for(i=0;i<5;i++)
a[i]=i;
}
调试时,单步进入f1()函数后,在watch窗口输入::a后,无法查看数组a中的内容,但是可以一个一个的查看,例如在watch窗口里输入a[0]、a[1]等。对于较大的数组时,一个一个的输入查看不太方便,有其它快捷的办法吗?
3 个解决方案
#1
作为形参这个类型会退化成指针,调试时也仅仅把它当做一个指针而已
VS也仅能查看第一个值
VS也仅能查看第一个值
#2
因为此时a就是一个指针,所以只能看它的值(一个地址)
可以看它指向的内容,打开Memory窗口,地址输入a即可
不过只能整型数据能看清,浮点的就算了
可以看它指向的内容,打开Memory窗口,地址输入a即可
不过只能整型数据能看清,浮点的就算了
#3
数组作为参数传递会退化为指针,f1参数实际是int*,是指针而不是数组,f1中没法知道数组大小,自然也不会按数组方式显示
#1
作为形参这个类型会退化成指针,调试时也仅仅把它当做一个指针而已
VS也仅能查看第一个值
VS也仅能查看第一个值
#2
因为此时a就是一个指针,所以只能看它的值(一个地址)
可以看它指向的内容,打开Memory窗口,地址输入a即可
不过只能整型数据能看清,浮点的就算了
可以看它指向的内容,打开Memory窗口,地址输入a即可
不过只能整型数据能看清,浮点的就算了
#3
数组作为参数传递会退化为指针,f1参数实际是int*,是指针而不是数组,f1中没法知道数组大小,自然也不会按数组方式显示