首先C语言中没有引用的概念,其次这么做也没法返回两个值,
可以定义一个结构例如:
typedef sturct data
{
int a;
int b;
}Data;
函数首部:Data fun();
函数的返回值是个结构,间接达到了“返回两个值”的目的
----------------解决方案--------------------------------------------------------
关于 type (*p)[n] 的编译限制 的更正
我原以为:在TC系列
不能如下:
#include <stdio.h>
main()
{
char a[2][3]={'a','s','d','f','g','h'};
char (*p)[4]=&a[0][1];
printf("%c\n",p[0][3]);
getchar();
}
****************************
只能如下:
#include <stdio.h>
main()
{
char a[2][3]={'a','s','d','f','g','h'};
char (*p)[3]=a; /* 这里的数字一定要跟上面的最后的数字一致。
printf("%c\n",p[0][3]);
getchar();
}
现在发现: 如果把后缀写成C,前者照样可以(虽然有警告),改成CPP才不行。
还有另外一种方式:
在COMPILER的C++OPTION中,选C++ ALWAYS,即使是C后缀,也不行,原则一样。
在VC中,也基本一样。
总之,前者是C规范,后者是C++规范
在C++,有一些很死的规定,C就自由多了
----------------解决方案--------------------------------------------------------
要函数返回一个值以上的都需要用到指针啦~~~
----------------解决方案--------------------------------------------------------