Code dưới đây có tác dụng gì?

em mới học về con trỏ nên không hiểu lắm, mọi người cho em hỏi chương trình dưới đây dùng làm gì vậy ạ
kết quả trên màn hình -1 3 0 0

#include <stdio.h>
using namespace std;
void main()
{
	int x = 1023;
	char* p = (char *)&x;
	printf("% d % d % d % d\n",p[0], p[1], p[2], p[3]);
}

người ta rảnh code linh tinh chơi thôi, hiểu làm gì
ví dụ gặp đoạn code

#include <stdio.h>
using namespace std;
void main()
{
    cout<<"Hello world";
}

đoạn code trên có tác dụng gì, có ý nghĩa gì không?

2 Likes

Dùng để minh họa :smiley: chắc muốn đc giải thích đây mà.

1 Like

int 4 byte (hầu hết là vậy), thì giá trị của số int dựa vào giá trị của từng byte này, (có máy tính từ trái qua phải hoặc ngược lại)

    int x = 0;
	unsigned char* p = (unsigned char *)&x;
	
	for(;x<2000;++x){
	    cout << x << " " << (int)p[0] << " " << (int)p[1] << " " << (int)p[2] << " " << (int)p[3] << endl;
	}

log đoạn trên ra là hiểu.
biết được rằng khi set 1 giá trị cho số int thì máy nó cũng sẽ set cho từng byte 1, nên khi làm việc với multi thread thì lúc đọc giá trị ra cũng phải dùng 1 trong các cơ chế bảo vệ data.

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