”Java 方法可以返回数组类型“ 所想到的
2014-07-28 14:23
351 查看
在C和C++中不能返回一个局部变量,因为函数中的局部变量分配的存储空间在栈上,当函数执行完后会被重新利用,所以想要返回数组类型,有两种方式:1)静态变量(static in a function可以在函数调用之间保持值有效),2)利用malloc动态分配,但是最终要记得释放。下面是几个简单测试程序:
1.错误的示例:
2.返回指向堆上的指针:
3.利用静态变量:
4.Java中可以返回数组类型:
public class TestArray
{
public static int []
func( int n) {
int []
arr = { 1, 3, 5, 6 };
return arr;
}
public static void func2( int n)
{
int a =
9;
int b =
10;
System. out .println("in
func2...." );
}
public static void main(String[]
args) {
int []
b = func(4);
func2(8);
System. out .println(b[0]);
}
}
1.错误的示例:
#include <stdio.h> int *func(int n){ int x = n *n; int a[] = {1,3,4,5,7}; a[0] = x; return a; } void func2(){ int a = 1; int b = 78; printf("%d vonzhou jjjj.\n",a); } int main(){ int n = 3; int *a = func(3); //func2(2); printf("%d\n", a[0]); return 0; }
2.返回指向堆上的指针:
#include <stdio.h> #include <stdlib.h> int *func(int n){ int x = n *n; int *a = (int *)malloc(5 * sizeof(int)); a[0] = x; return a; } void func2(){ int a = 1; int b = 78; printf("%d vonzhou jjjj.\n",a); } int main(){ int n = 3; int *a = func(3); func(2); printf("%d\n", a[0]); free(a); return 0; }
3.利用静态变量:
#include <stdio.h> int *func(int n){ int x = n *n; static int a[] = {1,3,4,5,7}; a[0] = x; return a; } void func2(){ int a = 1; int b = 78; printf("%d vonzhou jjjj.\n",a); } int main(){ int n = 3; int *a = func(3); func2(2); printf("%d\n", a[0]); return 0; }
4.Java中可以返回数组类型:
public class TestArray
{
public static int []
func( int n) {
int []
arr = { 1, 3, 5, 6 };
return arr;
}
public static void func2( int n)
{
int a =
9;
int b =
10;
System. out .println("in
func2...." );
}
public static void main(String[]
args) {
int []
b = func(4);
func2(8);
System. out .println(b[0]);
}
}
相关文章推荐
- java中方法可以不写返回类型吗?
- 参数化方法返回类型,参数化数组
- java 中ResultSet可以获取的数据类型及返回值类型列表
- 参数化方法返回类型,参数化数组
- 数组类型的方法返回值
- Java重载可以有不同的返回类型
- java,返回多类型数组
- 黑马程序员_Java基础(数据类型、Java操作符、数组排序方法)
- Visual C#2005——如何使用ToArray方法返回一个强类型数组
- Visual C#2005——如何使用ToArray方法返回一个强类型数组
- java返回数组的方法
- 由计算机产生0-9之间的随机整数,用户输入猜测的数据,统计用户猜测的次数。产生随机数可以使用Math.rangom()静态方法,该方法返回正的double类型浮点数位于(0.0 1.0】间。
- 子类方法返回类型必须和父类相同,抛出的异常声明可以小于或等于父类
- Visual C#2005——如何使用ToArray方法返回一个强类型数组
- Java 5.0 泛型之 通过泛型方法返回泛型类型
- Java调用存储过程(返回:简单类型、自定义对象、列表数组)
- Java里如何实现一个方法在不同情况下“返回”不同的类型变量?
- ToArray(type) 方法返回强类型数组
- [Android拾怡]弱化Java方法返回值类型
- java中相同名字不同返回类型的方法