Lỗi: Không thể hủy đăng ký Int trong C++

Loi Khong The Huy Dang Ky Int Trong C



Ngôn ngữ lập trình cần thư viện, hàm, cú pháp và những thứ khác khi làm việc với chúng. Vì vậy, có khả năng mã của chúng tôi sẽ có lỗi. Lập trình bằng C++ có nhiều loại lỗi khác nhau. Chúng ta sẽ thảo luận về lỗi “int could be dereferenced in C++” tại đây. Lỗi này xảy ra khi chúng ta cố gắng sử dụng toán tử quy định “*” với dữ liệu kiểu số nguyên “int” vì “int” là kiểu dữ liệu nguyên thủy. Chúng ta không thể hủy đăng ký “int” trong lập trình C++. Ở đây, lỗi “int could be dereferenced in C++” và giải pháp của nó sẽ được khám phá kỹ lưỡng. Một số mã được đưa ra trong hướng dẫn này, trong đó chúng ta sẽ thấy lỗi này xảy ra như thế nào và cách xử lý loại lỗi này trong C++.

Ví dụ 1: Dereference Int







Trong mã này, chúng tôi sẽ cố gắng hủy đăng ký “int” trong C++. Bây giờ, chúng tôi chỉ cần thêm tệp tiêu đề “iostream” để sử dụng các hàm đã xác định. Bên dưới điều này, chúng tôi sử dụng “không gian tên std” và gọi phương thức “main()” tại đây. Sau đó, chúng ta khai báo biến “my_num” với kiểu dữ liệu “int” và gán “99” cho biến này.



Bây giờ, chúng ta khai báo “my_value” của kiểu dữ liệu “int” và khởi tạo nó bằng “*my_num”, nghĩa là chúng ta đang cố gắng hủy đăng ký biến “my_num” thuộc kiểu dữ liệu “int”. Lỗi được tạo ra trên dòng này trong khi biên dịch vì chúng tôi không thể hủy đăng ký “int”. Chúng ta muốn hiển thị giá trị nhận được sau khi hủy tham chiếu int, vì vậy chúng ta đặt “cout” trong đó chúng ta đã thêm biến “my_value”.



Mã 1:





#include
sử dụng không gian tên std;
int chính ( ) {
int my_num = 99 ;
int my_value = * my_num;
cout << 'Giá trị chúng ta nhận được thông qua việc hủy tham chiếu int là: ' << giá trị của tôi << cuối cùng;
trở lại 0 ;
}

Đầu ra:



Ở đây, chúng ta có thể nhận thấy rằng không có giá trị nào được hiển thị và xảy ra lỗi cho biết có đối số loại không hợp lệ là “*”. Điều này có nghĩa là chúng ta không thể hủy đăng ký “int” trong C++.

Giải pháp 1: Không có hội thảo

Ở đây, chúng ta sẽ nhận được giá trị nguyên trực tiếp mà không cần tham chiếu. Chúng tôi nhập tệp tiêu đề “iostream” vì có một số định nghĩa hàm. Sau đó, chúng ta gõ “namespace std” cùng với từ khóa “using” rồi gọi phương thức “main()” tại đây. Bây giờ, chúng ta khởi tạo biến “my_num” của kiểu dữ liệu “int” với giá trị “99”.

Sau đó, chúng ta khởi tạo một biến khác với tên “my_value” và gán nó với biến “my_num” chứa số nguyên. Sau đó, chúng ta nhận trực tiếp giá trị số nguyên này mà không cần tham chiếu bằng cách đặt “my_value” vào “cout”. Điều này nhận và hiển thị giá trị số nguyên.

Mã 1:

#include
sử dụng không gian tên std;
int chính ( ) {
int my_num = 99 ;
int my_value = my_num;
cout << 'Giá trị chúng ta nhận được mà không hủy tham chiếu int là: ' << giá trị của tôi << cuối cùng;
trở lại 0 ;
}

Đầu ra:

Giá trị số nguyên được hiển thị ở đây mà chúng tôi nhận được mà không cần tham chiếu đến mã C++ của mình. Chúng tôi truy cập trực tiếp giá trị số nguyên này và hiển thị nó.

Giải pháp 2: Bằng cách hủy bỏ con trỏ

Tệp tiêu đề “iostream” chứa các định nghĩa hàm nhất định; chúng tôi đã nhập khẩu chúng. Tiếp theo, chúng ta chạy hàm “main()” tại đây sau khi gõ “namespace std” và từ khóa “using”. Biến “my_num” của kiểu dữ liệu “int” hiện được khởi tạo với giá trị “99”.

Sau đó, chúng ta khởi tạo con trỏ “my_ptr” và gán địa chỉ của biến “my_num” cho con trỏ này. Bên dưới phần này, chúng tôi hủy đăng ký con trỏ và gán giá trị mà chúng tôi nhận được thông qua biến này cho biến “my_value” khi chúng tôi khởi tạo “my_value” bằng “*my_ptr”. Bây giờ, chúng ta đặt “cout” trong đó chúng ta chuyển biến “my_value” để hiển thị giá trị nguyên mà chúng ta nhận được thông qua việc hủy tham chiếu con trỏ.

Mã 2:

#include
sử dụng không gian tên std;
int chính ( ) {
int my_num = 99 ;
int * my_ptr = & my_num;
int my_value = * my_ptr;
cout << 'Giá trị của int chúng ta nhận được khi hủy tham chiếu một con trỏ là: ' << giá trị của tôi << cuối cùng;
trở lại 0 ;
}

Đầu ra:

Giá trị số nguyên mà chúng ta nhận được sau khi hủy tham chiếu con trỏ trong mã của chúng ta hiện được hiển thị ở đây. Vì vậy, đây là cách chính xác để áp dụng hội thảo trong C++.

Ví dụ 2: Dereference Int

Hãy thử hủy đăng ký “int” trong C++ trong mã này. Để sử dụng các hàm được xác định trong “iostream”, chúng ta chỉ cần đưa vào tệp tiêu đề “iostream”. Đây là nơi chúng ta sử dụng “namespace std” và gọi hàm “main()”. Tiếp theo, chúng ta tạo biến “a” và đặt cho nó kiểu dữ liệu “int” cùng với giá trị “75”.

Bên dưới phần này, chúng ta tạo một con trỏ có tên “newPointer” và gán địa chỉ của biến “a” cho con trỏ này với sự trợ giúp của “&”. Sau đó, chúng ta khởi tạo biến “num” bên dưới bằng “*a” cho biết rằng chúng ta đang cố gắng hủy đăng ký biến “a” thuộc kiểu dữ liệu “int”. Vì chúng ta không thể hủy đăng ký “int”, nên hiện tại đã xuất hiện lỗi trên dòng này trong quá trình biên dịch. Sau đó, chúng tôi cũng sử dụng “cout” để thêm biến “num”.

Mã 2:

#include
sử dụng không gian tên std;
int chính ( ) {
int a = 75 ;
int * con trỏ mới = & Một;
số nguyên = * Một;
cout << 'Giá trị hủy tham chiếu của int là: ' << trên một << cuối cùng;
trở lại 0 ;
}

Đầu ra:

Ở đây, chúng ta có thể thấy rằng không có giá trị nào được hiển thị và thông báo lỗi cho biết “tham số loại không hợp lệ của đơn nguyên”*” xuất hiện. Điều này chỉ ra rằng “int” không thể bị hủy đăng ký trong C++.

Giải pháp 1: Không có hội thảo

Chúng ta sẽ không cần phải hủy tham chiếu để nhận được giá trị số nguyên ngay lập tức. Chúng tôi nhập nó vì tệp tiêu đề “iostream” chứa các định nghĩa hàm nhất định. Sau đó, hàm “main()” sẽ được gọi sau khi nhập từ khóa “using” và “namespace std”. Biến “a” của kiểu dữ liệu “int” hiện được khởi tạo với giá trị “75”. Sau đó, chúng ta chèn “a” vào “cout” để nhận giá trị số nguyên này ngay lập tức mà không cần tham chiếu. Điều này lấy giá trị số nguyên và hiển thị nó ở đây.

Mã 1:

#include
sử dụng không gian tên std;
int chính ( ) {
int a = 75 ;
cout << 'Giá trị chúng tôi nhận được mà không cần tham chiếu là: ' << Một << cuối cùng;
trở lại 0 ;
}

Đầu ra:

Giá trị số nguyên thu được từ mã C++ của chúng tôi mà không cần tham chiếu đến được trình bày ở đây. Giá trị số nguyên này có thể truy cập ngay lập tức và được hiển thị ở đây.

Giải pháp 2:

Chúng tôi nhập tệp tiêu đề “iostream” chứa một số định nghĩa hàm. Ở đây, chúng ta gõ từ khóa “namespace std” và “using” trước khi thực thi hàm “main()”. Giá trị “75” được gán cho biến “a”.

Tiếp theo, chúng ta khai báo một con trỏ có tên là “mypointer” và khởi tạo nó bằng địa chỉ của biến “a” cho nó. Bên dưới điều này, chúng ta hủy đăng ký con trỏ và gán giá trị mà chúng ta nhận được từ biến này cho biến “kết quả” khi chúng ta khởi tạo “kết quả” bằng “*mypointer”. Sau khi hủy tham chiếu con trỏ, chúng ta đặt lệnh “cout” và truyền biến “result” để hiển thị giá trị nguyên.

Mã 2:

#include
sử dụng không gian tên std;
int chính ( ) {
int a = 75 ;
int * con trỏ của tôi = & Một;
kết quả int = * con trỏ của tôi;
cout << 'Giá trị chúng ta nhận được thông qua việc hủy tham chiếu con trỏ là: ' << kết quả << cuối cùng;
trở lại 0 ;
}

Đầu ra:

Đây là kỹ thuật thích hợp để áp dụng hội thảo trong C++. Nó hiển thị giá trị số nguyên mà chúng ta thu được sau khi hủy tham chiếu con trỏ thay vì hủy tham chiếu “int”.

Phần kết luận

Chúng tôi đã khám phá ra rằng khi chúng tôi cố gắng lấy giá trị bằng cách hủy tham chiếu “int” trong C++, thì “tham số loại không hợp lệ của một ngôi sao “*” có lỗi int sẽ xảy ra, điều đó có nghĩa là “int không thể bị hủy đăng ký trong C++”. Chúng tôi cũng đã giải thích giải pháp cho lỗi này. Chúng tôi đã sử dụng mã xảy ra lỗi và mã mà chúng tôi đã cung cấp giải pháp cho lỗi đó trong hướng dẫn này.