c ++ como un parámetro de matriz pasada es el valor o la dirección?

c ++ como un parámetro de matriz pasada es el valor o la dirección?

Ejecutar el programa siguiente

STD espacio de nombres el uso mismo 
int a [100] = {1,2,3,4,5,6,7,8,9}; 
CIT void (int B [100]) {// la dirección de un pase b, a modificada modificaciones equivalentes B 
	B = 1,113 [1.]; // esto es en realidad modificados a [1].; 
	COUT << B [1.] << endl; 
} 
int main () { 
	
	COUT << un [. 1] < <endl; // primer elemento de la salida de matrices 
	cout << un << endl; // salida de dirección array 
	// Char D = 'a'; 
	CIT (a); 
	cOUT << a [1].; 
	return 0 ; 
}

  

 

 

 El resultado:

1. Descripción: Cuando una matriz de parámetros, se pasa a la dirección .

Modificar la matriz en la función equivalente para modificar la matriz original.

Nota: La función también se puede escribir

cit void (int b []) {// la dirección de pasado a a b, es equivalente a la modificación de un modificado B 
	B = 1113 [1].; [. 1] // esto es realmente modificada a; 
	. COUT << B [1 ] << endl; 
}

 

Al pasar, igual a la primera dirección de la pasada de matriz pasada, por lo que puede no ser un número determinado de elementos de matriz.

Si desea pasar el número de elementos de la matriz, la matriz se puede escribir

cit void (int b [], int n) {a // dirección será pasado b, correspondiente a modificar un modificado B 
	B = 1113 [1].; // esto es en realidad modifica un [1.]; 
	COUT << B [. 1] << endl; 
}

 cit llamada (a, 8)

2. Si pensó que la llamada cit dirección (a + 4,4) de la matriz va a pasar por él? 

Sí, el quinto elemento a [4] dirección

espacio de nombres STD el uso mismo 
int a [100] = {1,2,3,4,5,6,7,8,9}; 
CIT void (B int [], int n-) {// la dirección de un pase b, que corresponde a una modificación modificada B 
	B = 1113 [1].; // esto es realmente modificado un [5], ya que B corresponde [0] a una [4.]; 
	COUT << B [. 1] << endl ; 
} 
int main () { 
	
	cOUT << un << endl [1.]; // primer elemento de la salida de matrices 
	cout << un << endl; // dirección matriz de salida 
	// Char d = 'a'; 
	CIT (A + 4,4); 
	COUT << A [1]. << endl; 
	COUT << A [5]. << endl; 
	return 0; 
}

  salida:

 

 3. Si desea pasar una matriz de valores de la función, o modificar el valor de la matriz de la función, ¿cómo debo hacerlo?

void cit (const int b [], int n)

Así que si usted no accidentalmente modificar la función de matriz, un mensaje de error aparecerá

mediante el uso const como datos de sólo lectura, la pr función de matriz voluntad.

El siguiente programa le pedirá un error

cit void (int const b [] , int n) {a // dirección será pasado b, que corresponde a una modificación modificado b 
	b = 1,113 [1.]; // esto es en realidad modifica un [5], porque b [0] corresponde a una [4.]; 
	cout << B [1.] << endl; 
}

 Resumen: la función de C ++ en el procesamiento digital, el número de tipos de datos debe ser presentada en la matriz, la posición de partida del elemento de matriz de la matriz y a la misma; método convencional es el nombre de la matriz (la primera dirección) como un parámetro, como la segunda longitud de la matriz parámetros. 

 

Supongo que te gusta

Origin www.cnblogs.com/ssfzmfy/p/12520570.html
Recomendado
Clasificación