реклама на сайте
подробности

 
 
> Присвоение текста, Поделитесь опытом
Who_are_you?
сообщение Dec 25 2013, 12:48
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 185
Регистрация: 5-02-10
Из: Донецк
Пользователь №: 55 329



Си для микроконтроллеров.

Как короче в теле программы присвоить переменной текст?

Например (самый корoткий вариант):

<тип переменной> rrr;

rrr = 'error';
или

rrr = "error";
или

?????

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
lekintr
сообщение Dec 25 2013, 12:51
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 112
Регистрация: 10-10-13
Пользователь №: 78 684



Но правильней на мой вкус
char array1[25]="Text number 1";
char array2[25]="Text number 2";
char *parray;

parray = (char *)array1;
parray = (char *)array2;

Сообщение отредактировал lekintr - Dec 25 2013, 16:52
Go to the top of the page
 
+Quote Post
Lagman
сообщение Dec 25 2013, 13:44
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245



Цитата(lekintr @ Dec 25 2013, 16:51) *
Но правильней на мой вкус
char array1[25]="Text number 1";
char array2[25]="Text number 2";
char *parray;

parray = (char *)array1;
parray = (char *)array2;

А приведение типов (parray = (char *)array1;) разве тут требуется?
Go to the top of the page
 
+Quote Post
lekintr
сообщение Dec 25 2013, 13:45
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 112
Регистрация: 10-10-13
Пользователь №: 78 684



Иногда ругается, не вникал особо, почему, поэтому написал чтоб уж 100%.

Сообщение отредактировал lekintr - Dec 25 2013, 16:52
Go to the top of the page
 
+Quote Post
Lagman
сообщение Dec 25 2013, 14:00
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245



Цитата(lekintr @ Dec 25 2013, 17:45) *
Иногда ругается, не вникал особо, почему, поэтому написал чтоб уж 100%.

Керниган и Ритчи, в главе 5.3, писали:
Цитата
Между индексированием и арифметикой с указателями существует очень тесная связь. По определению значение переменной или выражения типа массив есть адрес нулевого элемента массива. После присваивания
pa = &a[0];
pa и a имеют одно и то же значение. Поскольку имя массива является синонимом адреса его начального элемента, присваивание pa = &a[0] можно также записать в следующем виде:
pa = a;
Еще более удивительно (по крайней мере на первый взгляд) то, что a[i] можно записать как *(a+i). Вычисляя a[i], Си сразу преобразует его в *(a+i); указанные две формы записи эквивалентны. Из этого следует,что записи &a[i] и a+i также будут эквивалентными, т.е. и в том и в другом случае это адрес i-го элемента массива a. С другой стороны, если pa — указатель, то его можно использовать с индексом, т.е. запись pa[i] эквивалентна записи *(pa+i). Короче говоря, элемент массива можно изображать как в виде указателя со смещением, так и в виде имени массива с индексом.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 13:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01387 секунд с 7
ELECTRONIX ©2004-2016