2 / 2 / 0
Регистрация: 14.12.2011
Сообщений: 44

При компиляции с помощью gcc или llvm, происходит ошибка и они требуют амперсанд

19.05.2013, 22:30. Показов 1352. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Столкнулся с таким кодом:
C
1
2
3
4
5
6
int a[N],i;
 
...
 
scanf("%d",a[i]);
...
согласно K&R, при чтении элементов массива, знак амперсанда перед a[i] не требуется, так как имя массива само по себе является указателем.
Однако, при компиляции с помощью gcc или llvm, происходит ошибка и они требуют амперсанд.
Помогите восстановить справедливость и определить в каком стандарте правило ANSI C от K&R отменили.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.05.2013, 22:30
Ответы с готовыми решениями:

Ошибки в коде при компиляции с помощью GCC
Переписал код из книжки по C++. Переписал один в один, но компилятор выдает ошибки. Сам код // FunctionDemo - демонстрация...

Ошибки при компиляции ClanLib с помощью GCC(MinGW) 4.6.2
компилирую ClanLib с помощью GCC(MinGW) 4.6.2 делаю configure --enable-clanDisplay --enable-clanGL --enable-clanGL1 --enable-clanGUI...

Ошибка при компиляции в WinAvr GCC
WinAvr выдает ошибку при компиляции ни кто не вкурсе что с ней делать? в етих строках #if !defymed(__DOXYGEN__) static...

3
Native x86
Эксперт Hardware
 Аватар для quwy
6820 / 3753 / 1021
Регистрация: 13.02.2013
Сообщений: 11,779
20.05.2013, 00:11
a[i] -- это не массив, а элемент массива. И с точки зрения компилятора он эквивалентен обычной переменной со всеми вытекающими амперсандами. Да и где написано, что "имя массива само по себе является указателем"? Передача массива в функцию всегда производится по ссылке, да, но это совсем не означает, что массив сам по себе всегда указатель.
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
20.05.2013, 04:00
Цитата Сообщение от quwy Посмотреть сообщение
Да и где написано, что "имя массива само по себе является указателем"?
quwy, что тогда по вашему происходит тут:
a+i ?
a[i] всего лишь эквивалентная запись *(a+i)
В остальном согласен.


lunohod-1, дело в том, что a[i] это уже разыменованный указатель, т.о. знак амперсанда все-же требуется.
0
2 / 2 / 0
Регистрация: 14.12.2011
Сообщений: 44
20.05.2013, 19:04  [ТС]
MrGluck, спасибо, совсем забыл, что в K&R было чтение самого массива
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.05.2013, 19:04
Помогаю со студенческими работами здесь

Ошибка компиляции VBA, требуют скобку
VBA выдает ошибку в формуле f=abs(exp(a)-a^b+3^7)^(1/7)*log(a^3+3)^2*(atn(a*b)+2*atn(1)) Compile error Expected: ) нужна скобка,...

При компиляции программы происходит ошибка, что делать?
Доброго времени суток ,писал себе курсовую, ни кого не трогал ,и тут бац откуда не возьмись вот такая, ошибка никак не могу понять откуда...

При компиляции происходит ошибка - raised exception class segmentation fault (11)
Я начал недавно изучать программирование на андройд . Чтобы проверять работоспособность программы я решил все делать через виртуальный...

При выборе цвета линии с помощью random() происходит ошибка
Здравствуйте, уважаемые специалисты. У меня в программе есть непонятная ошибка, связанная с вызовом функции random(). Дела обстоят так....

Ошибка компиляции GCC Inline Assembly
#include "stdafx.h" #include <stdio.h> #include <windows.h> #include <locale.h> #include <string.h> int _tmain(int argc,...


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

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

Новые блоги и статьи
Трассировка корутин Kotlin с OpenTelemetry
mobDevWorks 14.07.2025
Асинхронное программирование меняет правила игры, особенно когда речь заходит о трассировке операций. В Kotlin с его корутинами эта проблема приобретает особый оттенок, который я хотел бы детально. . .
Облачные приложения на Rust: руководство по архитектуре микросервисов
golander 13.07.2025
Когда я впервые взялся за проектирование облачной платформы для одного из наших клиентов, выбор стоял между привычными Go и Java. Но после нескольких месяцев разработки микросервисной системы,. . .
Как Node.js выполняет асинхронные операции
Reangularity 13.07.2025
Каждый раз, когда я рассказываю про Node. js, возникает один и тот же вопрос: "Как эта штука может быть быстрой, если JavaScript — однопоточный язык?" И это действительно кажется парадоксом. Ведь в. . .
Как писать чистый, тестируемый и качественный код на Python
py-thonny 12.07.2025
Помню свой первый проект на Python. Работал тогда быстро, грязно, лишь бы работало. Код был похож на запутанный клубок - переменные по одной букве, функции на 200 строк, комментарии отсутствовали как. . .
Blazor и контроллер сервопривода IoT Meadow Maple
Wired 11.07.2025
Я решил разобраться, как можно соединить современные веб-технологии с миром "железа". Интересная комбинация получилась из Blazor в качестве веб-интерфейса и микроконтроллера Meadow с его веб-сервером. . .
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
Изучаем новый шаблон ИИ-чата .NET AI Chat Web App
stackOverflow 10.07.2025
В . NET появилось интересное обновление - новый шаблон ИИ-чата под названием . NET AI Chat Web App. Когда я впервые наткнулся на анонс этого шаблона, то сразу понял, что Microsoft наконец-то. . .
Результаты исследования от команды ARP (июль 2025 г.)
Programma_Boinc 10.07.2025
Результаты исследования от команды ARP (июль 2025 г. ) Африканский проект по дождям (ARP) World Community Grid снова запущен! Мы рады поделиться обновленной информацией о нашем прогрессе с осени. . .
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru