Về con trỏ trong C++

con trỏ kiểu int có trỏ đến biến kiểu float k mọi người?
thank all!

thay vì hỏi, tại sao bạn không bật Visual lên và làm thử ?

Về nguyên tắc là không. Và ép kiểu như vậy là sai.

nếu muốn in ra số byte của 1 kiểu thì viết code như nào mn?
vs kiểu int có 4bytes ,

sizeof(<kiểu>) 30 char 30 char

nếu sai thì người ta còn sinh ra ép kiểu làm gì ạ

Được, nếu bạn xài kiểu này

float a = 4.4;
int* b = (int*)&a;

Nhưng đi làm mà dùng là bị đuổi việc đó.
Nếu bạn dùng C++ để đi vọc vạch hack hiếc thì có khi có ích :smile:

thế k có cách nào à mn?
sao bài tâp ông thầy lại bảo gán địa chỉ biến kiểu double cho con trỏ kieeu int nhỉ

double du = 6.7;
int* in = (int*)&du;

lam vaayj bạn nói bị đuổi việc mà

Đuổi việc chứ không đuổi học :rofl::rofl::rofl::rofl:

cho mình hỏi thêm sao gán số 0 cho con trỏ kieur int thì dc mà gán số 1000 thì ko đc?
thank bạn

Hi Vinh.
Hoàn toàn được.
Kỹ thuật này thường được dùng khi thao tác trên byte.
VD Bạn có 1 biến kiểu uint16 khi dùng con trỏ uint8 trỏ vào biến đó bạn được một mảng uint8 có 2 phần tử gồm byte cao và byte thấp của số uint16.

#include<stdio.h>
#include<stdint.h>
int main() {
        uint16_t value = 32;
        uint8_t *p = (uint8_t*)(&value);
        printf("%d %d",p[0], p[1]);
return 0;
}

Hi 明玉
Code mấy cái liên quan đến bite hay dùng kiểu này lắm.

unit16_ vs unit8_t kia minh tự đặt à anh??

Hi Vinh.
Kiểu được định nghĩa sẵn trong thư viện stdint.h.
http://pubs.opengroup.org/onlinepubs/009695399/basedefs/stdint.h.html

C++ thì thư viện gì a

Sợ có nơi khó tính muốn code rõ ràng thôi, int và float khác nhau mà.

Hi 明玉
Tất nhiên là tuy trường hợp yêu cầu mà code cho hợp lý. Cần xử lý dấu phảy động chẳng hạn @_@!

Cái này là undefined behavior. Nếu bạn muốn dùng hai kiểu trong một biến thì phải dùng union.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?