C/C++
Помогите с программированием на си
Способы возврата значений из функции. Назовите эти способы. Очень срочно
#include <stdio.h>
#include <stdlib.h>
// Возвращение по ссылке, работает только в С++
int& twice_ref(int* ptr) {
*ptr *= 2;
return *ptr;
}
// Возвращение по параметрам-ссылкам, работает только в С++
void swap_ref(int& a, int& b) {
int t = a;
a = b;
b = t;
}
// Возвращение по указателю в стиле языка C++
int* create_cpp(size_t len) {
auto ptr = new int[len];
if (ptr != nullptr) {
auto n = 0;
for (auto i = 0U; i < len; ++i) ptr[i] = ++n;
}
return ptr;
}
// Возвращение по значению
int twice_val(int value) {
return value * 2;
}
// Возвращение по параметрам-указателям
void swap_ptr(int *pa, int* pb) {
int t = *pa;
*pa = *pb;
*pb = t;
}
// Возвращение по указателю в стиле языка C
int* create_c(int* ptr, size_t len) {
ptr = (int*)malloc(len * sizeof(int));
if (ptr != NULL) {
int n = 0;
size_t i;
for (i = 0U; i < len; ++i) ptr[i] = ++n;
}
return ptr;
}
int main(void) {
int* ptr = NULL;
size_t len = 12U;
size_t i;
int n = 0;
ptr = create_c(ptr, len); // обязательно вернуть переданный указатель...
for (i = 0U; i < len; ++i) printf("%4i", ptr[i]);
puts("");
free(ptr); // ...иначе при освобождении ресурсов памяти возникнет ошибка
return 0;
}
#include <stdlib.h>
// Возвращение по ссылке, работает только в С++
int& twice_ref(int* ptr) {
*ptr *= 2;
return *ptr;
}
// Возвращение по параметрам-ссылкам, работает только в С++
void swap_ref(int& a, int& b) {
int t = a;
a = b;
b = t;
}
// Возвращение по указателю в стиле языка C++
int* create_cpp(size_t len) {
auto ptr = new int[len];
if (ptr != nullptr) {
auto n = 0;
for (auto i = 0U; i < len; ++i) ptr[i] = ++n;
}
return ptr;
}
// Возвращение по значению
int twice_val(int value) {
return value * 2;
}
// Возвращение по параметрам-указателям
void swap_ptr(int *pa, int* pb) {
int t = *pa;
*pa = *pb;
*pb = t;
}
// Возвращение по указателю в стиле языка C
int* create_c(int* ptr, size_t len) {
ptr = (int*)malloc(len * sizeof(int));
if (ptr != NULL) {
int n = 0;
size_t i;
for (i = 0U; i < len; ++i) ptr[i] = ++n;
}
return ptr;
}
int main(void) {
int* ptr = NULL;
size_t len = 12U;
size_t i;
int n = 0;
ptr = create_c(ptr, len); // обязательно вернуть переданный указатель...
for (i = 0U; i < len; ++i) printf("%4i", ptr[i]);
puts("");
free(ptr); // ...иначе при освобождении ресурсов памяти возникнет ошибка
return 0;
}
1. По значению
2. По адресу
3. По ссылке
2. По адресу
3. По ссылке
Похожие вопросы
- Помогите с программированием на Си
- Помогите с программированием на Си Работа с последовательностями элементов
- День добрый \[-_-]/ вопрос по вузовскому программированию на си(C)
- Программирование на си в Визуал студио
- Помогите Программирование на Си (одномерные массивы)
- Программирование на Си
- Как написать код по этому заданию? Программирование на Си
- Программирование на СИ "Написать программу подсчёта суммы нечётных элементов из 20 введенных"
- Программирование на си
- Программирование на си
int *someFunction (int *ptr){
*ptr=15;
return ptr;
}
int main(){
int x=7;
someFunction(&x);
return 0;
}