Обмен адресами через указатели и ошибка "Lvalue required as left operand of assignment" - C (СИ)
Формулировка задачи:
#include <stdio.h> #include <cstdlib> #include <locale> #define LEN 5 double arr[LEN] = {1.1, 2.54, 0.8, 9.246, 3.0}; double tar1[LEN], tar2[LEN]; void copy_ind(double [], double [], int); void copy_ptr(double *, double *, int); int main(void) { setlocale(LC_ALL, "Russian"); copy_ind(arr, tar1, LEN); copy_ptr(arr, tar2, LEN); system("pause"); return 0; } void copy_ind(double arr[], double zippo[], int len) { int i; for (i=0; i<len; ++i) zippo[i]=arr[i]; printf("Элементы массива tar1 = "); for (i=0; i<len; ++i) printf("%.3lf ", zippo[i]); putchar('\n'); } void copy_ptr(double *arr, double *zippo, int len) { double *i; int k=0; for(i=arr; k<len; ++i, ++k) *(zippo+k)=*i; printf("Элементы массива tar2 = "); for (k=0; k<len; ++k) printf("%.3lf ", *(zippo+k)); putchar('\n'); }
zippo+k=i;
Решение задачи: «Обмен адресами через указатели и ошибка "Lvalue required as left operand of assignment"»
textual
Листинг программы
int x=0; // x+2=5; так нельзя x = 3; // а так можно
Объяснение кода листинга программы
- Объявляется переменная типа int с именем
x
и инициализируется значением 0. - На следующей строке кода происходит попытка присвоить значение 5 переменной
x
с шагом 2, но компилятор выдает ошибкуLvalue required as left operand of assignment
, так как выражениеx+2
не является допустимым левым операндом для присваивания. - На следующей строке кода значение переменной
x
присваивается значение 3.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д