Passar una matriu a una funció C ++

Passing An Array Function C



Una matriu és un grup d'elements del mateix tipus de dades. Moltes funcions es realitzen en matrius, ja sigui al programa principal o fora d’aquest, a les funcions. A C ++, en el cas de les funcions, les hem de passar. Això es fa mitjançant paràmetres com a arguments. Aquests arguments poden ser de maneres diferents, ja siguin matrius de mida considerable o mitjançant la matriu de punter. En aquest tutorial, tractarem alguns aspectes principals de la transferència de matriu mitjançant diferents paràmetres de les funcions.

Sintaxi

[Tornatipus] [el nom defunció] (dadestipusarrayname[matriumida])

{

funciócos

}

Exemple 1

Penseu en un exemple en què hem d'imprimir les marques dels estudiants al programa C ++. Aquesta impressió es prendrà en una funció independent en lloc del programa principal. En canvi, prendrem entrades al programa principal i transferirem aquests valors a la funció com a paràmetre. Penseu en la funció. Al seu paràmetre, hi ha una variable de tipus de dades de matriu que acceptarà els valors d’una matriu. Aquí es declara la matriu completa. Les marques es mostraran amb l'ajut de for loop. Com a les matrius, necessitem bucles per imprimir-ne.









Avançant cap a la funció principal, declarem una matriu amb la seva mida i valors. Com hem de cridar a la funció. Per tant, el mètode és que escrivim el nom de la funció amb el nom de la matriu al paràmetre com a argument. No hem definit la mida de la matriu.



Visualització(marques);

L'argument del paràmetre implica l'adreça de memòria de la matriu. Al paràmetre de la capçalera de la funció, int m [7] es converteix en int * m. Inclou la mateixa adreça que la matriu original. Quan fem servir la m [5] al cos de la funció, manipularem la matriu original.





Visualització buida(int m[7] )

Al sistema operatiu Linux, obtenir sortida a través d’un terminal requereix d’instal·lar alguns requisits previs. Necessita un compilador per compilar i executar el codi al terminal de l'indicador d'ordres. G ++ s’utilitza a C ++ per a la compilació.



$g ++ -ocodi3 codi3.c

$./codi3

On –o s’utilitza per emmagatzemar la sortida del fitxer font al fitxer de sortida.

Des de la sortida, podeu observar que tots els números iniciats a la matriu de la funció principal es passen i es mostren a través de la funció de visualització.

Exemple 2

Un altre exemple de matriu que passa a través del paràmetre és passar una matriu multidimensional a la funció. Aquí s’utilitza una matriu bidimensional (2d). A la funció principal, hem d'inicialitzar una matriu.

Matriu int[fila][columna]

La inicialització de matriu 2d inclou fila i columna. I el seu ordre es mantindrà durant tot el programa. La matriu 2d s’inicialitza amb dos números entre claudàtors. Com hem descrit 2 columnes a la inicialització.

Visualització(en un);

Només utilitzarem el nom de la matriu del paràmetre com a argument.

Ara veurem el funcionament de la funció de visualització. A mesura que s'inicia la funció, es necessita una variable de matriu per acceptar una matriu passada per la trucada de funció a través del programa principal.

Visualització buida(int n[][2] )

És obligatori esmentar el nombre de columnes. En comparació, no és essencial en el cas de les files. Per això, hem deixat aquí els claudàtors de fila buits mentre fem servir el bucle per mostrar els resultats. Però en el cas d’una matriu bidimensional, fem servir un bucle niuat. Conté dues sentències per a 2 variables.

Podem veure la sortida utilitzant el mateix compilador. Podeu veure els resultats que cada valor es mostra per separat amb la fila i el número de columna.

Exemple 3

Aquest exemple és una mica diferent dels anteriors. En aquest exemple, esmentem la mida de la matriu al paràmetre de la trucada de funció. I a la declaració de funcions, també s’introdueix una variable per acceptar la mida d’una matriu.

A partir del programa principal, s'inicialitza una matriu amb els valors.

avg = getAverage(balanç,5);

El resultat s’emmagatzemarà a la variable avg. En lloc de passar només el nom de la matriu, la mida de la matriu també s'afegeix al paràmetre.

El paràmetre també conté la variable de tipus de matriu i un tipus de dades enter per rebre la mida de la matriu. El tipus del programa principal és int perquè rebrà un valor enter de la funció. En cas contrari, és nul en altres casos.

Ara veurem la sortida. Aquest valor és visible a través de la imatge que s'obté de la funció.

Exemple 4

Aquest exemple es refereix a determinar el nombre màxim de la matriu, de fet, a partir de dues matrius. Aquí inicialitzem dues matrius al programa principal. Ambdues matrius es passen per separat a la funció en trucades de funció separades

printMax(arr1);

printMax(arr2);

on printMax és el nom de la funció i arr és la matriu. El resultat no tornarà de la funció i es mostrarà allà. For loop calcularà el nombre màxim en ambdues matrius. La sentència if-s'utilitza dins del bucle for. La capçalera de la funció és:

void printMax(int arr[5])

Com que les dues matrius contenen valors diferents, els dos resultats seran diferents.

Exemple 5

Aquest exemple és el resum de tot tipus de matrius que passen pels paràmetres. Aquests poden ser de mida, sense mida o matriu de punter. Els considerarem un per un.

Al programa principal, cada funció es declara primer. Podeu assenyalar la diferència en la seva declaració.

Int sum1(int tmp[5]);

Int sum2(int tmp[]);

Int sum3(int*tmp);

Aquestes tres matrius mostren que es poden passar matrius que tenen aquests paràmetres a la funció.

Després de la inicialització de la funció, tenim el programa principal en què es declara la matriu. A diferència de l'exemple anterior, s'inicialitza una matriu en lloc de dues, però es passa de tres maneres diferents. Ara veurem les trucades a funcions realitzades aquí.

Total = sum1(vendes);

Total = suma2(vendes);

Total = suma3(vendes);

La sortida es mostra a la funció principal, de manera que es declara una variable que accepta el valor que retorna la funció. De les tres trucades de funció, podeu veure que aquí els paràmetres són els mateixos. Cada matriu només conté el nom d'una matriu. Però els paràmetres de la funció que accepta la matriu són diferents.

El cos intern de les tres funcions és el mateix, ja que la suma de tots els nombres es calcula a partir de l’ús del bucle For. La metodologia i els valors de la matriu són els mateixos; només hi ha discriminació entre els paràmetres de les funcions. Per tant, es demostra que podem utilitzar mètodes diferents per acceptar una matriu o realitzar la mateixa funcionalitat, i la resposta és la mateixa. Ho podem confirmar comprovant la sortida. Mitjançant el mateix procediment de recopilació, obtindrem la sortida que es mostra a la imatge adjunta a continuació.

Podeu veure que la resposta és la mateixa per a les tres funcions utilitzades.

Conclusió

En aquest article, l'usuari coneixerà el mètode de pas d'una matriu en paràmetres. Les matrius es poden gestionar en molts casos a l’hora de retornar el valor o passar-lo en arguments.