hagiang12a19
Mr & Ms Pac-Man
Xin coi đoạn mã sau : (VC++ 6.0)
#include <stdio.h>
#include <conio.h>
void main()
{
int a[5];
// mang 5 phan tu : a[0] a[1] ... a[5]
int *intp;
// con tro kieu int
intp = (int *)(&a); // cach 01
//intp = (int *)a; // cach 02
//intp = a; // cach 03
//intp = &a; // cach 04
*(intp+1) = 1;
// gan gia tri 1 vao phan tu thu 2 = a[1]
printf("%d", *(intp+1));
// in ra
getch();
}
Trong cả 3 cách đầu tiên : gán địa chỉ mảng a[5] cho con trỏ đều cho kết quả đúng ! Nhưng cách thứ 04 : intp = &a; lại báo lỗi ! Có bro nào biết vì sao kô vậy ? Xin chỉ giúp.
#include <stdio.h>
#include <conio.h>
void main()
{
int a[5];
// mang 5 phan tu : a[0] a[1] ... a[5]
int *intp;
// con tro kieu int
intp = (int *)(&a); // cach 01
//intp = (int *)a; // cach 02
//intp = a; // cach 03
//intp = &a; // cach 04
*(intp+1) = 1;
// gan gia tri 1 vao phan tu thu 2 = a[1]
printf("%d", *(intp+1));
// in ra
getch();
}
Trong cả 3 cách đầu tiên : gán địa chỉ mảng a[5] cho con trỏ đều cho kết quả đúng ! Nhưng cách thứ 04 : intp = &a; lại báo lỗi ! Có bro nào biết vì sao kô vậy ? Xin chỉ giúp.
[5]