Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
NeonLost
Пес войны
 Аватар для NeonLost
74 / 85 / 3
Регистрация: 23.02.2012
Сообщений: 653
#1

почему в массиве str хранятся значения str2, ведь в функции создается копия...разве нет? - C++

30.11.2012, 19:55. Просмотров 255. Ответов 4
Метки нет (Все метки)

почему в массиве str хранятся значения str2, ведь в функции создается копия...разве нет?..)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
const int N=3;
void read(char str2[N]){
     cout<<"Enter string:"<<endl;
     gets(str2);
     }
int main()
{
    char str[N];
    read(str);
    for (int i=0; i<N; i++)
    {
        cout<<str[i];
    }
    getchar();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2012, 19:55     почему в массиве str хранятся значения str2, ведь в функции создается копия...разве нет?
Посмотрите здесь:

C++ Как использовать функции string::find или функция strstr(str1 ,str2)
C++ Почему не создается специализация шаблона функции
Заменить все вхождения str1 на str2 (str1 вводится из файла, а str2 - с клавиатуры) C++
C++ Функцию, которая получает два параметра str1 и str2 типа string и возвращает позицию начала последнего появления str2 в str1
Написать программу, в которой создается двухмерный массив, значения вводятся с клавиатуры,потом значения умножаются по строкам - access violation C++
C++ Функции str.size() и str.length() - в чем их разница?
Создается ли копия объекта при индексации вектора? C++
Хорошо ли использовать унарный плюс вместо функции получения модуля? Если нет, то почему? C++
Почему это компилируется, ведь под второй массив по идее не выделено в куче памяти C++
Почему в массиве меняются значения? C++
Почему в функции operator не ставят тип возвращаемого значения? C++
Почему в выводе массива нет введенного значения C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
30.11.2012, 20:11     почему в массиве str хранятся значения str2, ведь в функции создается копия...разве нет? #2
Цитата Сообщение от NeonLost Посмотреть сообщение
ведь в функции создается копия...разве нет?..)
В этом случае не создается копия. Потому что функция read(char str2[N]) принимает указатель на строку (адрес строки) и никакая копия строки не создается.
То есть функция read() имеет прямой доступ к строке, которая находится в функции main()
NeonLost
Пес войны
 Аватар для NeonLost
74 / 85 / 3
Регистрация: 23.02.2012
Сообщений: 653
30.11.2012, 20:23  [ТС]     почему в массиве str хранятся значения str2, ведь в функции создается копия...разве нет? #3
Цитата Сообщение от V.A.L.I.D Посмотреть сообщение
В этом случае не создается копия. Потому что функция read(char str2[N]) принимает указатель на строку (адрес строки) и никакая копия строки не создается.
То есть функция read() имеет прямой доступ к строке, которая находится в функции main()
как указатель, если я не обьявлял указателей?..)
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
30.11.2012, 20:29     почему в массиве str хранятся значения str2, ведь в функции создается копия...разве нет? #4
Цитата Сообщение от NeonLost Посмотреть сообщение
как указатель, если я не обьявлял указателей?..)
Имя строки (то бишь массива символов) есть указатель на его первый элемент. Заучить уж пора. В случае с массивами других типов (double, int...) ситуация аналогична.
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
30.11.2012, 20:30     почему в массиве str хранятся значения str2, ведь в функции создается копия...разве нет? #5
Цитата Сообщение от NeonLost Посмотреть сообщение
как указатель, если я не обьявлял указателей?..)
Когда в функцию передаешь массив, то на самом деле ты не массив передаешь а указатель на его начало ) Адрес его первого элемента

Не по теме:

опоздал. BumerangSP ответил

Yandex
Объявления
30.11.2012, 20:30     почему в массиве str хранятся значения str2, ведь в функции создается копия...разве нет?
Ответ Создать тему
Опции темы

Текущее время: 12:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru