Языкам программирования при работе с ними нужны библиотеки, функции, синтаксис и другие вещи. Таким образом, есть вероятность, что наши коды будут содержать ошибки. Программирование на C++ имеет множество различных типов ошибок. Здесь мы обсудим ошибку «int нельзя разыменовать в C++». Эта ошибка возникает, когда мы пытаемся использовать оператор разыменования «*» с данными целочисленного типа «int», поскольку «int» — это примитивный тип данных. Мы не можем разыменовать «int» в программировании на C++. Здесь ошибка «int не может быть разыменована в C++», и ее решение будет тщательно изучено. В этом руководстве приведены некоторые коды, в которых мы увидим, как возникает эта ошибка и как ее обрабатывать в C++.
Пример 1: Разыменование Int
В этом коде мы попытаемся разыменовать «int» в C++. Теперь мы просто включаем заголовочный файл «iostream», чтобы использовать определенные функции. При этом мы используем «пространство имен std» и вызываем здесь метод «main()». Затем мы объявляем переменную «my_num» с типом данных «int» и присваиваем этой переменной «99».
Теперь мы объявляем «my_value» типа данных «int» и инициализируем его с помощью «*my_num», что означает, что мы пытаемся разыменовать переменную «my_num», имеющую тип данных «int». В этой строке при компиляции генерируется ошибка, поскольку мы не можем разыменовать «int». Мы хотим отобразить значение, которое получим после разыменования int, поэтому размещаем «cout», в который добавили переменную «my_value».
Код 1:
#include
использование пространства имен std;
int главный ( ) {
интервал my_num = 99 ;
интервал my_value = * мой_номер;
расчет << 'Значение, которое мы получаем при разыменовании int: ' << мое_значение << конец;
возвращаться 0 ;
}
Выход:
Здесь мы можем заметить, что значение не отображается и возникает ошибка, говорящая о том, что имеется аргумент недопустимого типа унарного «*». Это означает, что мы не можем разыменовать «int» в C++.
Решение 1. Без разыменования
Здесь мы получим целочисленное значение напрямую, без разыменования. Мы импортируем заголовочный файл «iostream», поскольку в нем присутствуют определения некоторых функций. Затем мы вводим «пространство имен std» вместе с ключевым словом «using», а затем вызываем здесь метод «main()». Теперь мы инициализируем переменную «my_num» типа данных «int» значением «99».
Затем мы инициализируем другую переменную с именем «my_value» и присваиваем ей переменную «my_num», которая содержит целое число. После этого мы получаем это целочисленное значение напрямую, без разыменования, помещая «my_value» в «cout». Это получает и отображает целочисленное значение.
Код 1:
#includeиспользование пространства имен std;
int главный ( ) {
интервал my_num = 99 ;
int my_value = my_num;
расчет << 'Значение, которое мы получаем без разыменования int: ' << мое_значение << конец;
возвращаться 0 ;
}
Выход:
Здесь отображается целочисленное значение, которое мы получаем без разыменования в нашем коде C++. Мы напрямую получаем доступ к этому целочисленному значению и отображаем его.
Решение 2. Путем разыменования указателя
Заголовочный файл «iostream» содержит определения определенных функций; мы их импортировали. Далее мы запускаем здесь функцию «main()» после ввода «namespace std» и ключевого слова «using». Переменная «my_num» типа данных «int» теперь инициализируется значением «99».
После этого мы инициализируем указатель «my_ptr» и присваиваем этому указателю адрес переменной «my_num». Далее мы разыменовываем указатель и присваиваем полученное значение переменной «my_value», поскольку мы инициализировали «my_value» с помощью «*my_ptr». Теперь мы помещаем «cout», в который передаем переменную «my_value» для отображения целочисленного значения, которое мы получаем путем разыменования указателя.
Код 2:
#includeиспользование пространства имен std;
int главный ( ) {
интервал my_num = 99 ;
интервал * мой_ptr = & мой_номер;
интервал my_value = * мой_птр;
расчет << 'Значение int, которое мы получаем при разыменовании указателя, равно: ' << мое_значение << конец;
возвращаться 0 ;
}
Выход:
Здесь теперь отображается целочисленное значение, которое мы получаем после разыменования указателя в нашем коде. Итак, это правильный способ применения разыменования в C++.
Пример 2: Разыменование Int
Давайте попробуем разыменовать «int» в C++ в этом коде. Чтобы использовать функции, определенные в «iostream», нам просто нужно включить заголовочный файл «iostream». Здесь мы используем «пространство имен std» и вызываем функцию «main()». Затем мы создаем переменную «a» и присваиваем ей тип данных «int» вместе со значением «75».
Под этим мы создаем указатель с именем «newPointer» и присваиваем этому указателю адрес переменной «a» с помощью «&». Затем мы инициализируем приведенную ниже переменную «num» с помощью «*a», что указывает на то, что мы пытаемся разыменовать переменную «a», имеющую тип данных «int». Поскольку мы не можем разыменовать «int», в этой строке во время компиляции теперь выдается ошибка. После этого мы также используем «cout», в который добавляем переменную «num».
Код 2:
#includeиспользование пространства имен std;
int главный ( ) {
интервал а = 75 ;
интервал * новыйУказатель = & а;
целое число = * а;
расчет << 'Значение разыменования int: ' << на одной << конец;
возвращаться 0 ;
}
Выход:
Здесь мы видим, что значение не отображается, и появляется сообщение об ошибке с указанием «недопустимого параметра унарного типа»*». Это указывает на то, что «int» нельзя разыменовать в C++.
Решение 1. Без разыменования
Нам не нужно будет разыменовывать, чтобы сразу получить целочисленное значение. Мы импортируем его, поскольку заголовочный файл «iostream» содержит определенные определения функций. Затем после ввода ключевых слов «using» и «namespace std» вызывается функция «main()». Переменная «a» типа данных «int» теперь инициализируется значением «75». После этого мы вставляем «a» в «cout», чтобы сразу получить это целочисленное значение без разыменования. Это получает целочисленное значение и показывает его здесь.
Код 1:
#includeиспользование пространства имен std;
int главный ( ) {
интервал а = 75 ;
расчет << «Значение, которое мы получаем без разыменования:» << а << конец;
возвращаться 0 ;
}
Выход:
Здесь представлено целочисленное значение, полученное из нашего кода C++ без разыменования. Это целочисленное значение доступно сразу и показано здесь.
Решение 2:
Мы импортируем заголовочный файл «iostream», содержащий некоторые определения функций. Здесь мы вводим «namespace std» и ключевое слово «using» перед выполнением функции «main()». Значение «75» присваивается переменной «a».
Далее мы объявляем указатель с именем «mypointer» и инициализируем его адресом переменной «a». Далее мы разыменовываем указатель и присваиваем значение, полученное от него, переменной «result», когда инициализируем «результат» с помощью «*mypointer». После разыменования указателя мы помещаем команду «cout» и передаем переменную «result», чтобы отобразить целочисленное значение.
Код 2:
#includeиспользование пространства имен std;
int главный ( ) {
интервал а = 75 ;
интервал * мойуказатель = & а;
int результат = * мой указатель;
расчет << 'Значение, которое мы получаем при разыменовании указателя: ' << результат << конец;
возвращаться 0 ;
}
Выход:
Это правильный метод применения разыменования в C++. Он отображает целочисленное значение, которое мы получили после разыменования указателя, вместо разыменования «int».
Заключение
Мы выяснили, что когда мы пытаемся получить значение путем разыменования «int» в C++, возникает ошибка «недопустимый параметр типа унарного «*», имеющего int», что означает, что «int не может быть разыменован в C++». Мы также объяснили решение этой ошибки. В этом руководстве мы использовали код, в котором произошли ошибки, и коды, в которых мы предоставили решение этой ошибки.