java中数组是怎么作为函数参数进行传递的
public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] dataList = {5,7,100,-2,0,10,121};
		QuickSort qs = new QuickSort();
		qs.quickSort(dataList, 0, 6);
	}
这一段代码   运行时为什么会抛出
空指针异常 ?··求解释
              
------解决方案-------------------- int pivotpos = low;
		
int Vector[] = null; 
		for (int i = 0; i <= dataList.length; i++) {
			
Vector[i]  = dataList[i];
		}
------解决方案-------------------- 引用: Quote: 引用:  
我给你修改过了。也指出了你的错误。注意你的for循环的 <= 与 < 的使用的情形。你这里的问题很严重啊,出现了2个错误。 
 
 
package com.wanmei.test; 
 
public class QuickSort { 
 
	// private int dataList[] = {5,7,100,-2,0,10,121}; 
	void quickSort(int dataList[], int left, int right) { 
		if (left < right) { 
			int pivotpos = partition(dataList, left, right); 
			quickSort(dataList, left, pivotpos - 1); 
			quickSort(dataList, pivotpos + 1, right); 
		} 
		//for (int i = 0; i <= dataList.length; i++) {//这里不能是 <= 会造成数组的越界,应该是 < 
		for (int i = 0; i < dataList.length; i++) { 
			System.out.println(dataList[i] + " "); 
		} 
	} 
 
	int partition(int dataList[], int low, int high) { 
		int pivotpos = low; 
		//int Vector[] = null;//你这里给int数组赋予的是空值,当然在后面的调用的时候会出错了。 
		int vector[] = new int[dataList.length];; 
		//for (int i = 0; i <= dataList.length; i++) {//这里不能是 <= 会造成数组的越界,应该是 < 
		for (int i = 0; i < dataList.length; i++) { 
			vector[i] = dataList[i]; 
		} 
		int pivot = vector[low]; 
		for (int i = low + 1; i <= high; i++) { 
			if (vector[i] < pivot) { 
				pivotpos++; 
				if (pivotpos != i) 
					swap(vector[pivotpos], vector[i]); 
 
			} 
 
		} 
		vector[low] = vector[pivotpos]; 
		vector[pivotpos] = pivot; 
 
		return pivotpos; 
	} 
 
	void swap(int a, int b) { 
		int x = 0; 
		x = a; 
		a = b; 
		b = x; 
	} 
 
	public static void main(String[] args) { 
		// TODO Auto-generated method stub 
		int[] dataList = { 5, 7, 100, -2, 0, 10, 121 }; 
		QuickSort qs = new QuickSort(); 
		qs.quickSort(dataList, 0, 6); 
	} 
 
} 
 
 
 
可是为什么没有排序啊··这是快速排序算法啊 
你的问题是:为什么会报错,而不是“这个算法”该如何实现。我当然没有修改你的算法了。为什么没有排序,应该自己检查一下代码的逻辑,看看自己什么地方出错了。可以实现用伪代码把逻辑写出来,建立模型,分析一下,然后再逻辑正确的前提下,在写你的java代码。中间如果代码出错,你应该学会用IDE的debug工具,进行代码分析。