01/10/2018, 09:36

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!

Hide viết 11:50 ngày 01/10/2018

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

rogp10 viết 11:50 ngày 01/10/2018

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

Vinh viết 11:43 ngày 01/10/2018

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 ,

rogp10 viết 11:38 ngày 01/10/2018

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

Vinh viết 11:47 ngày 01/10/2018

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

明玉 viết 11:40 ngày 01/10/2018

Đượ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

Vinh viết 11:37 ngày 01/10/2018

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ỉ

明玉 viết 11:50 ngày 01/10/2018
double du = 6.7;
int* in = (int*)&du;
Vinh viết 11:48 ngày 01/10/2018

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

明玉 viết 11:38 ngày 01/10/2018

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

Vinh viết 11:40 ngày 01/10/2018

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

Tao Không Ngu. viết 11:51 ngày 01/10/2018

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;
}
Tao Không Ngu. viết 11:42 ngày 01/10/2018

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

Vinh viết 11:46 ngày 01/10/2018

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

Tao Không Ngu. viết 11:41 ngày 01/10/2018

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

Vinh viết 11:47 ngày 01/10/2018

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

明玉 viết 11:39 ngày 01/10/2018

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

Tao Không Ngu. viết 11:44 ngày 01/10/2018

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 @_@!

rogp10 viết 11:43 ngày 01/10/2018

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

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.

Vinh viết 11:48 ngày 01/10/2018

e ko hiểu rõ lắm ,anh code thử cái ạ

Bài liên quan
0