Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/60: Рейтинг темы: голосов - 60, средняя оценка - 4.72
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701

Читаю книгу

14.08.2021, 19:12. Показов 14222. Ответов 222
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Когда пишу, то что читаю, запоминаю лучше.

Читаю книгу Курс программирования на языке СИ. Сергей Фомин, Вадим Подбельский
Есть такое предложение там:
Идентификаторы могут иметь любую длину, но компилятор учитывает не более 31 символа от начала идентификатора. В некоторых
компиляторах это ограничение еще более жесткое, и учитываются
только первые 8 символов любого идентификатора. В этом случае
идентификаторы NUMBER_OF_ROOM и NUMBER_OF_TEST
в программе будут неразличимы.
-----------------------------------------------
Непонятно что они имеют в виду под идентификатором? Возможно имена присваеваемые переменным?
Эти имена присваемые переменным не могут превышать 31 символ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.08.2021, 19:12
Ответы с готовыми решениями:

Читаю из файла, scanf, число с лидирующим нулем
На VS 2010 #include<stdio.h> void main() { freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); ...

Читаю книгу, нужны задания
Начал читать Троелсена. Вроде все понятно и доступно объясняет, но программирование- это прежде всего практика. Вот прочитал я главу, про...

Читаю книгу,есть то чего я не понял)
Привет,форум!) Я читаю книгу "Шилдт Г. С++ Базовый курс (3-е издание, 2010)" Свежее не нашёл,но когда я пытаюсь использовать или...

222
 Аватар для COKPOWEHEU
4056 / 2691 / 432
Регистрация: 09.09.2017
Сообщений: 11,989
16.08.2021, 15:12
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от koeltrad Посмотреть сообщение
Указатель - это переменная, ЗНАЧЕНИЕ которой содержит адрес?
Да.
Цитата Сообщение от koeltrad Посмотреть сообщение
В моём коде когда я не объявлял указатель, значения у r не было.
Было, но неопределенное. То есть один раз запустили программу, там 0, второй - там 50, третий -18 и т.д. Это называется неинициализированная переменная.
Цитата Сообщение от koeltrad Посмотреть сообщение
А вот адрес переменной r вызывал я функцией printf
НЕТ.
Адрес нельзя вызвать.
Вы получили адрес переменной и передали его в функцию printf.
Цитата Сообщение от koeltrad Посмотреть сообщение
Вот когда ЗНАЧЕНИЕ переменной содержит какой либо адрес, такая переменная называется указателем.
Нет. Указателем могут быть только переменные, объявленные как указатель.
C
1
2
int var = 0x12345;  //переменная со значением 0x12345
int *ptr = 0x12345;//указатель, указывающий на адрес 0x12345
Разница в том, что обычную переменную нельзя разыменовать (получить значение по значению), а указатель можно.
Цитата Сообщение от koeltrad Посмотреть сообщение
Надеюсь правильно. Я пытаюсь досконально во всём разобраться, не могу иначе.
Тогда я бы предложил начать с какого-нибудь простого ассемблера вроде AVR, x51 или PIC. Чтобы понять как вообще может быть организован доступ к памяти, операторы и т.п.
1
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
17.08.2021, 01:27  [ТС]
В интернете не нашёл.
Как присвоить переменной шестнадцатеричное значение?
Есть типы переменных int, float, double, а для шестнадцатиричных чисел не нашёл.

Добавлено через 1 час 43 минуты
Нашёл такой вариант:
unsigned char* value = "DC4938C31B9E8B30F32FC0F5EC894E16";
printf("%s\n", value);


Что то похожее на Указатель и мне не нравится что значение находится в скобках. Похоже не на число, а на строку. Даже тип у переменной как у строки char.

Добавлено через 6 минут
Я немного переделал.
Получилось почти как указатель(От указателя здесь только звёздочка если что)), только вместо цифр int находится char.

C
1
2
3
4
5
6
#include <stdio.h>
int main(void) {
    char* a = "DC4938C31B9E8B30F32FC0F5EC894E16";
    printf("%s\n", a);
  return 0;
}
0
 Аватар для qppq
145 / 89 / 23
Регистрация: 31.08.2016
Сообщений: 780
Записей в блоге: 2
17.08.2021, 09:46
Цитата Сообщение от koeltrad Посмотреть сообщение
а для шестнадцатиричных чисел не нашёл
пример можно такого числа

Добавлено через 36 минут
C++
1
long int a = 0хDC4938C31B9E8B30F32FC0F5EC894E16;
переменная типа int в 16ом формате записи
1
 Аватар для COKPOWEHEU
4056 / 2691 / 432
Регистрация: 09.09.2017
Сообщений: 11,989
17.08.2021, 09:49
Цитата Сообщение от koeltrad Посмотреть сообщение
Есть типы переменных int, float, double, а для шестнадцатиричных чисел не нашёл.
Так компьютер кроме как с двоичными работать не умеет. Другое дело, что для ввода-вывода может конвертировать из десятичной, восьмеричной, шестнадцатеричной и иногда двоичной систем.
C
1
2
3
unsigned int val = 0x2A;
unsigned int val = 42;
unsigned int val = 052;
Все три записи делают одно и то же - присваивают переменной val двоичное число 0b00101010

Добавлено через 54 секунды
Ах да, если вы хотите чтобы число выводилось в нужной системе, смотрите форматы printf
1
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
17.08.2021, 16:54  [ТС]
Переменная адресного типа имеет тип int*
Почему же я в этот же тип не могу сохранить адрес, но напрямую, не используя int*=&b;
Я например сразу хочу присвоить переменной адресного типа какой либо адрес, например int*a= 000000000060FE1C;
Понимаю, такой уж тип переменной что так не работает наверное. Разыменовывание не будет работать например уже.
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
17.08.2021, 16:58
Цитата Сообщение от koeltrad Посмотреть сообщение
Я например сразу хочу присвоить переменной адресного типа какой либо адрес
Цитата Сообщение от Croessmah Посмотреть сообщение
void * p = (void *)0xDEADBEEF;
int * p = (int*)0xDEADBEEF;
1
 Аватар для COKPOWEHEU
4056 / 2691 / 432
Регистрация: 09.09.2017
Сообщений: 11,989
17.08.2021, 17:37
Цитата Сообщение от koeltrad Посмотреть сообщение
Почему же я в этот же тип не могу сохранить адрес, но напрямую, не используя int*=&b;
Откуда же нам знать что именно вам мешает?
Другое дело, что обычно смысла в таком действии просто нет. В том смысле что какой именно адрес вы хотите туда сохранить и что потом с ним делать? Ваш 000000000060FE1C1 - это адрес чего? Уверены ли вы, что вам вообще можно туда писать или читать? Скорее всего нет.
Я могу придумать только один случай, когда нужен именно адрес - доступ к портам железа. Например, в микроконтроллере ATmega8 регистр PORTD расположен по адресу 0x32, соответственно писать надо именно туда. Но там производитель контроллера почти всегда его заворачивает в макрос, так что тот становится неотличим от переменной.
Теоретически, есть еще вариант с ручным распределением памяти, но это то еще извращение.
.
1). Не говоря о том, что число 000000000060FE1C недопустимо в Си. То, что оно начинается на ноль, говорит, что число восьмеричное. Но в восьмеричных числах недопустимы цифры от 8 до F. Если же вы хотели написать шестнадцатеричное число, надо было добавить 0x в начале.
Цитата Сообщение от koeltrad Посмотреть сообщение
Понимаю, такой уж тип переменной что так не работает наверное. Разыменовывание не будет работать например уже.
Работать-то будет, естественно. Вот только вам, если повезет, операционка по рукам даст за то, что полезли за пределы памяти, которую она вам выделила. Если не повезет, то доступ к памяти вы получите.
0
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
17.08.2021, 17:43  [ТС]
В чём смысл (int*) перед числом? Получается два раза задаётся тип переменной? Один раз до знака равно, второй раз после знака равно.
Мало разжёванных ответов в интернете.

Добавлено через 3 минуты
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
это адрес чего?
Конкретно этот адрес мне мой компьютер выдал. Это адрес переменной из моего компьютера)
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
17.08.2021, 17:48
koeltrad, читайте книжку.
0
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
17.08.2021, 17:56  [ТС]
Я её обязательно прочитаю. Но пока что нормально иду по изучению)))
Когда знаешь о чём читаешь, усваиваешь в два раза больше.
Сейчас я беру интересную тему, попутно разбираю много других вопросов вокруг.
Да, понятно что вам это в напряг)
Я хочу типы переменных, массивы и кое что ещё может выучить, потом продолжить читать.

Добавлено через 1 минуту
Я раньше уже писал на Яваскрипте, но на уровне новичка, поэтому много основных вопросов уже знаю.
0
 Аватар для COKPOWEHEU
4056 / 2691 / 432
Регистрация: 09.09.2017
Сообщений: 11,989
17.08.2021, 18:12
Цитата Сообщение от koeltrad Посмотреть сообщение
В чём смысл (int*) перед числом?
Приведение типа. Это ключевые слова для поиска.
Цитата Сообщение от koeltrad Посмотреть сообщение
Конкретно этот адрес мне мой компьютер выдал.
А при следующем запуске выдаст другой.
1
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
17.08.2021, 18:16  [ТС]
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А при следующем запуске выдаст другой.
Нет, постоянно один адрес выдаёт на эту переменную. Не важно сколько раз запускаю.
0
 Аватар для COKPOWEHEU
4056 / 2691 / 432
Регистрация: 09.09.2017
Сообщений: 11,989
17.08.2021, 21:56
Попробуйте запустить несколько копий своей программы или перезагрузиться или еще какие шаманства.
И даже если на удастся воспроизвести проблему таким способом, она выстрелит в другое время. Дело в том, что в общем случае распределение памяти может меняться, особенно в более простых средах без виртуальной памяти.
1
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
17.08.2021, 22:14  [ТС]
Не могу разобраться с функцией scanf.
Используя этот код нужно почему то вводить два раза цифры. А функция scanf одна в коде, я рассчитывал на то что одну цифру вводить надо.

C
1
2
3
4
5
6
7
#include <stdio.h>
int main() {
  int a;
  scanf(" %d ", &a);
  printf("%d \n",a);
  return 0;
}
0
из племени тумба-юбма
 Аватар для мама Стифлера
2523 / 1819 / 419
Регистрация: 29.11.2015
Сообщений: 8,857
Записей в блоге: 15
17.08.2021, 22:23
Цитата Сообщение от koeltrad Посмотреть сообщение
А функция scanf одна в коде, я рассчитывал на то что одну цифру вводить надо
в функции scanf не должно быть ничего лишнего, даже пробелов, тогда будет нормально работать scanf("%d", &a);
1
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
17.08.2021, 23:47  [ТС]
Будет ли считаться ошибкой если я в конце цифры с плавающей точкой НЕ напишу букву f?
Обязательно ли нужна f после числа с плавающей точкой?
3.14151516f
0
Модератор
 Аватар для long399
2885 / 1847 / 933
Регистрация: 16.10.2013
Сообщений: 5,252
Записей в блоге: 15
18.08.2021, 05:48
Цитата Сообщение от koeltrad Посмотреть сообщение
Обязательно ли нужна f после числа с плавающей точкой?
в случае, если вы хотите, чтобы это число было интерпретировано как float. Если вы не указываете f в конце, то будет выполнено приведение к float из double.
C
1
2
float f1 = 0.399; /* приведение 0.399 из double во float */
float f2 = 0.399f; /* приведение не требуется  */
2
из племени тумба-юбма
 Аватар для мама Стифлера
2523 / 1819 / 419
Регистрация: 29.11.2015
Сообщений: 8,857
Записей в блоге: 15
18.08.2021, 08:14
Цитата Сообщение от long399 Посмотреть сообщение
в случае, если вы хотите, чтобы это число было интерпретировано как float
Не знал, спасибо. Но по сути эти 2 строки - одно и тоже, ведь все равно переменная будет иметь тип float.
0
 Аватар для qppq
145 / 89 / 23
Регистрация: 31.08.2016
Сообщений: 780
Записей в блоге: 2
18.08.2021, 08:38
тоже не знал, делал так только в opengl для переменных типа GLfloat, хотя тоже не всегда
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,874
18.08.2021, 10:26
Цитата Сообщение от Алексей1153 Посмотреть сообщение
func("",&r); //в функцию передаётся адрес переменной r
в функцию передается копия адреса переменной
в Си все функции работают с копиями
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.08.2021, 10:26
Помогаю со студенческими работами здесь

Читаю книгу все работал а щас выдает такую ошибку
Вот смотрите не понимаю в чем дело!? &lt;html&gt; &lt;head&gt; &lt;title&gt;Опрос&lt;/title&gt; &lt;head&gt; &lt;body&gt; &lt;h1&gt;Предварительный...

Читаю книгу Страуструпа для новичков но мне одному она кажется трудной и не совсем понятной?
на протяжении всей книги он показывает код в виде ...&lt;...&gt;... почему просто бы не объяснить?в ООП Р.Лафоре и Б.Эккеля все норм по...

Читаю книгу Криса Касперски "Искусство дизассемблирования"
Читаю книгу Криса Касперски &quot;Искусство дизассемблирования&quot;, в которой автор рассказывает, каким образом можно производить модификацию...

читаю читаю не найду
расскажите какие функции в boost::asio отвечают за то если подключился кто то то они значения возращают дайте линк а то по туториалу на...

Читаю из файла в vector
Всем доброго времени суток, пытаюсь считать файл в вектор... Но трабл, в вектор всегда пишется ноль, не могу понять где косяк... В коде...


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

Или воспользуйтесь поиском по форуму:
60
Закрытая тема Создать тему
Новые блоги и статьи
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru