Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

30.11.2012, 19:55. Просмотров 279. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2012, 19:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос почему в массиве str хранятся значения str2, ведь в функции создается копия...разве нет? (C++):

Функции str.size() и str.length() - в чем их разница? - C++
Существует 2 функции для определения размера строки в string str.size() и str.length() В чем их разница? Почитал, что вроде бы разницы нет...

Почему не создается специализация шаблона функции - C++
Почему это не работает и как правильно определить operator&lt;&lt; вне тела класса? #include &lt;iostream&gt; using namespace std; template...

Создается ли копия объекта при индексации вектора? - C++
for (size_t i = 0, n = v.size(); i &lt; n; ++i) { //элементы вектора - string string &amp;s = v; // тут const string &amp;cs = v; //а тут? }...

Значения, которые есть в первом массиве и которых нет во втором массиве, скопировать в третий массив - C++
Помогите сделать вот условие Объявить тип структуры, содержащий сведения о фамилии и адреса людей. Ввести два массива таких...

В массиве хранятся значения роста 12 человек - Turbo Pascal
Пожалуйста, помогите решить задачу!!! Решение задач с использованием одномерных массивов. В массиве хранятся значения роста 12 человек....

В массиве H(n) хранятся значения высот некоторого профиля местности - C#
Подскажите как решить? В массиве H(n) хранятся значения высот неко¬торого профиля местности (ее вертикального сечения) с постоянным шагом...

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

Не по теме:

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

1
30.11.2012, 20:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2012, 20:30
Привет! Вот еще темы с ответами:

Составить подпрограмму для вычисления значения полинома, коэффициенты которого хранятся в массиве - Pascal
помогите пожалуста, срочно надо. зарание спасибо!! дана такая задача Составить подпрограмму для вычисления значения...

Почему не работает, ведь кажется правильно! - PHP
Здравствуйте уважаемые форумчане. В переменной $content есть ссылка такого вида: &lt;a...

не могу понять почему не работает, ведь работало - Windows Phone
есть TextBox1, TextBox2, TextBox3 TextBox3.Text = (Convert.ToInt32(TextBox1.Text, 2) * Convert.ToInt32(TextBox2.Text, 2)).ToString(); ...

Почему нет последнего значения в таблице? - VBA
Option Explicit Sub Pr_7() Dim a As Single, b As Single, xn As Single, xk As Single, dx As Single, T As String Dim x As Single, y As...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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