Предаване на масив на функция C ++

Passing An Array Function C



Масивът е група от елементи от същия тип данни. Много функции се изпълняват върху масиви или в основната програма, или извън нея, във функциите. В C ++, в случай на функции, трябва да ги предадем. Това става чрез параметри като аргументи. Тези аргументи могат да бъдат по различни начини, или големи масиви, или чрез масива на показалеца. В този урок ще разгледаме някои основни аспекти на трансфера на масиви, използвайки различни параметри на функциите.

Синтаксис

[ВръщанеТип] [име нафункция] (данниТипиме на масив[масивразмер])

{

функциятяло

}

Пример 1

Помислете за пример, в който трябва да отпечатаме оценките на учениците в програмата C ++. Този отпечатък ще бъде направен в отделна функция, а не в основната програма. За разлика от това, ние ще вземем входове в основната програма и ще прехвърлим тези стойности във функцията като параметър. Помислете за функцията. В неговия параметър има променлива тип данни от масив, която ще приеме стойностите на масив. Пълният масив е деклариран тук. Марките ще бъдат показани с помощта на цикъл for. Както в масивите, имаме нужда от цикли, за да получим печат от тях.









Придвижвайки се към основната функция, декларираме масив с неговия размер и стойности в него. Както трябва да извикаме функцията. Така че методът е, че пишем името на функцията с името на масива в параметъра като аргумент. Не сме дефинирали размера на масива.



Дисплей(марки);

Аргументът в параметъра предполага адреса на паметта на масива. В параметъра на заглавката на функцията int m [7] се преобразува в int *m. Това включва същия адрес като оригиналния масив. Когато използваме m [5] в тялото на функцията, ще манипулираме оригиналния масив.





Показване на празнота(int m[7] )

В операционната система Linux получаването на изход през терминал изисква да бъдат инсталирани някои предпоставки. Той се нуждае от компилатор, за да компилира и след това да изпълни кода в терминала на командния ред. G ++ се използва в C ++ за компилацията.



$g ++ -иликод3 код3.в

$./код 3

Където –o се използва за съхраняване на изхода от изходния файл към изходния файл.

От изхода можете да наблюдавате, че всички числа, инициирани в масива в основната функция, се предават и показват чрез функцията за показване.

Пример 2

Друг пример за преминаване на масив през параметър е предаването на многоизмерен масив на функцията. Тук се използва двуизмерен масив (2d). В основната функция трябва да инициализираме масив.

Int масив[ред][колона]

Инициализацията на 2d масив включва ред и колона. И редът им трябва да се запази в цялата програма. 2d масивът се инициализира с две числа в скобите. Както описахме 2 колони в инициализацията.

Дисплей(никой);

Ще използваме само името на масива в параметъра като аргумент.

Сега ще разгледаме функционирането на функцията за показване. Когато функцията се стартира, е необходима променлива на масив, за да приеме масив, предаден от извикването на функцията през основната програма.

Показване на празнота(int n[][2] )

Задължително е да се посочи броят на колоните. За сравнение, това не е от съществено значение в случай на редове. Ето защо оставихме скобите на редовете празни тук, докато използваме for цикъл за показване на резултатите. Но в случай на двуизмерен масив, използваме вложен цикъл for. Той съдържа две за изявления с 2 променливи в тях.

Можем да видим изхода, като използваме същия компилатор. Можете да видите резултатите, че всяка стойност се показва отделно с реда и номера на колоната.

Пример 3

Този пример е малко по -различен от предишните. В този пример споменаваме размера на масива в параметъра на извикването на функцията. В декларацията на функцията се въвежда и променлива, която приема размера на масив.

Започвайки от основната програма, се инициализира масив със стойностите.

Avg = getAverage(баланс,5);

Резултатът ще се съхранява в променливата avg. Вместо да се предава само името на масива, размерът на масива също се добавя към параметъра.

Параметърът също съдържа променлива тип масив и цяло число тип данни за получаване на размера на масива. Типът на основната програма е int, защото тя ще получи цяло число от функцията. В противен случай тя е невалидна в други случаи.

Сега ще видим изхода. Тази стойност се вижда чрез изображението, получено от функцията.

Пример 4

Този пример се отнася до определяне на максималния брой в масива, всъщност от два масива. Тук инициализираме два масива в основната програма. И двата масива се предават отделно на функцията в отделни извиквания на функции

printMax(arr1);

printMax(arr2);

където printMax е името на функцията, а arr е масивът. Резултатът няма да се върне от функцията и се показва там. For цикълът ще изчисли максималния брой в двата масива. If-изразът се използва вътре в цикъла for. Заглавката на функцията е:

void printМакс(int обр[5])

Тъй като и двата масива съдържат различни стойности, и двата резултата ще бъдат различни.

Пример 5

Този пример е обобщение на всички видове масиви, преминаващи през параметрите. Те могат да бъдат оразмерени, безразмерни или указателни масиви. Ще ги разгледаме един по един.

В основната програма всяка функция се декларира първа. Можете да посочите разликата в тяхната декларация.

Int сума 1(int tmp[5]);

Int сума 2(int tmp[]);

Int сума 3(int*tmp);

Тези три масива изобразяват, че могат да се предават масиви с тези параметри във функцията.

След инициализиране на функцията имаме основната програма, в която масивът е деклариран. За разлика от предишния пример, един масив се инициализира вместо два, но се предава по три различни начина. Сега ще видим извикванията на функции, направени тук.

Общо = сума1(продажби);

Общо = сума2(продажби);

Общо = сума3(продажби);

Изходът се показва в основната функция, така че променлива се декларира, че приема стойността, върната от функцията. От трите извиквания на функции можете да видите, че тук параметрите са еднакви. Всеки масив съдържа само името на масив. Но параметрите на функцията, която приема масива, са различни.

Вътрешното тяло на трите функции е същото, тъй като сумата от всички числа се изчислява от използването на цикъла For. Методологията и стойностите на масива са еднакви; само че има разлика между параметрите на функциите. Следователно е доказано, че можем или да използваме различни методи, за да приемем масив, или да изпълним същата функционалност, а отговорът е един и същ. Можем да го потвърдим, като проверим изхода. Използвайки същата процедура за компилиране, ще получим изхода, показан в изображението по-долу.

Можете да видите, че отговорът е един и същ за трите използвани функции.

Заключение

В тази статия потребителят ще разбере за метода на предаване на масив в параметри. Масивите могат да бъдат обработвани в много случаи, когато става въпрос за връщане на стойността или предаване в аргументи.