С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Двоичная обработка данных http://www.cyberforum.ru/cpp-beginners/thread1490713.html
Есть такая программа по двоичной обработке массива. Я не совсем понимаю, как здесь менять биты местами, к примеру наложением маски (0х00х0хххххххххх) поменять местами 1 и 3 бит с 4 и 6 битами...
C++ Регулировка скорости Надо составить прогу, которая позволяет текст, содержащийся в файле, воспроизвести сигналами азбуки Морзе. При этом текст должен посимвольно выводиться на экран. Предусмотреть возможность плавной... http://www.cyberforum.ru/cpp-beginners/thread1490709.html
C++ Найти разницу между минимальным и максимальным из набора чисел
Дано 20 вещественных чисел. Найти разницу между минимальным и максимальным из них.
C++ Копировать несколько символов из одной строки в другую
Нужна функция которая копирует символы из переменной в переменную начиная например от 5 символа и заканчивая 9
C++ Выводятся на печать смайлики вместо элементов строки http://www.cyberforum.ru/cpp-beginners/thread1490693.html
#include <stdio.h> #define MAXLINE 1000 int getline(char line, int maxline); void copy(char to, char from); /* печать самой длинной строки */ main() {
C++ Игра "Однорукий бандит". Кольцевая очередь. Двусвязный список Здраствуйте. Задание: "Создать игру "Однорукий бандит". При нажатии кнопки Enter происходит "вращение" трех барабанов (количество вращений каждого из них выбирается случайно), на которых... подробнее

Показать сообщение отдельно
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);
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.