Форум программистов, компьютерный форум CyberForum.ru

Раскройте глаза начинающему прогеру (в расшифке кода) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Двоичная обработка данных http://www.cyberforum.ru/cpp-beginners/thread1490713.html
Есть такая программа по двоичной обработке массива. Я не совсем понимаю, как здесь менять биты местами, к примеру наложением маски (0х00х0хххххххххх) поменять местами 1 и 3 бит с 4 и 6 битами соответственно. Можно даже на примере одного числа, не массива. # include <stdio.h> # include <string.h> # include <stdlib.h> void tobit(int); char s={"0000000000000000"}; int b,a1; main () {...
C++ Регулировка скорости Надо составить прогу, которая позволяет текст, содержащийся в файле, воспроизвести сигналами азбуки Морзе. При этом текст должен посимвольно выводиться на экран. Предусмотреть возможность плавной регулировки скорости воспроизведения. Справился, наконец-то, не без помощи, с выводом из файла на экран, все отлично работает. Но вот скорость регулировки как сделать не знаю. Нужна ваша помощь,... http://www.cyberforum.ru/cpp-beginners/thread1490709.html
C++ Найти разницу между минимальным и максимальным из набора чисел
Дано 20 вещественных чисел. Найти разницу между минимальным и максимальным из них.
Выводятся на печать смайлики вместо элементов строки C++
#include <stdio.h> #define MAXLINE 1000 int getline(char line, int maxline); void copy(char to, char from); /* печать самой длинной строки */ main() {
C++ Игра "Однорукий бандит". Кольцевая очередь. Двусвязный список http://www.cyberforum.ru/cpp-beginners/thread1490692.html
Здраствуйте. Задание: "Создать игру "Однорукий бандит". При нажатии кнопки Enter происходит "вращение" трех барабанов (количество вращений каждого из них выбирается случайно), на которых изображены разые значки, и, если выпадает определенная комбинация, то игрок получает какой-то выигрыш." Проблемы: - Пытался сделать именно значки, а не цифры. Не прокатило. - Иногда ошибка компиляции...
C++ _kbhit() как удалить символ, когда нажимаем клавишу? #include <iostream> #include <conio.h> using namespace std; void main() { char point = '*'; do { if (_kbhit()) { подробнее

Показать сообщение отдельно
yuyaryshev
18 / 18 / 6
Регистрация: 21.06.2015
Сообщений: 34
30.06.2015, 22:09     Раскройте глаза начинающему прогеру (в расшифке кода)
Цитата Сообщение от foxsc Посмотреть сообщение
как компилятор отличает цифру "32" от кода таблицы ?
Фишка в том, что компилятору все равно (это реально так).
Для него строка символов - это массив чисел. char - это целое число от -128 до 127.

Компилятору не нужно это отличать.

Просто функции типа print при определенных аргументах выведут тебе число как символ, а при других - как число.
Запусти вот это:
C++
1
2
3
4
printf("%d", 'R');
printf("%s", 'R');
printf("%d", 50);
printf("%s", 50);
Добавлено через 6 минут
Смотреть на это нужно так: оперативная память приложения - это весьма большой массив чисел (байт, они же char).
Когда ты делаешь print(х) - он тупо смотрит в указанную область памяти по адресу "х",
если ты делаешь print("%s", 50) - он начнет печатать данные выводя их как строку начиная с адреса 50.
Там может лежать что угодно,память может быть вообще не выделена - ему все равно, он будет выводить эти данные как если бы это была строка. В частности от этого прога может упасть (если эта область памяти не зарезервирована).

Добавлено через 2 минуты
Кстати, я напортачил в коде выше, лучше во так написать (как было раньше скорее всего приведет к Access violation at address ...);
C++
1
2
3
4
5
int x = 50;
printf("%d", "R");
printf("%s", "R");
printf("%d", x);
printf("%s", &x);
 
Текущее время: 11:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru