01/10/2018, 08:25
Con trỏ trong ngôn ngữ C
#include <stdio.h>
#include <stdlib.h>
int *p;
int main() {
int a = 3;
int b = 8;
p = &b;
printf("a = %ld" , /*Fill in here */);
printf("b = %ld" ,(long)(*p));
return 0;
}
Đề yêu cầu chỉ sử dụng con trỏ p để truy cập địa chỉ của a , b . Điền vào 2 chỗ để in giá trị của a và b mà em chỉ in ra được b . a và b có mối liên kết gì không ạ , anh chị nào biết giúp em với , em cảm ợn !
Bài liên quan
Sau phép gán này, bạn có thể hiểu p bây giờ là &b, và bên dưới bạn in ra giá trị của b bằng cách
thì cũng tương đương
(*(&b))
Bạn có thể làm tương tự cho biến còn lại mà ko cần dùng đến con trỏ p.
Không chính thức thì p-- la địa chỉ của a.
Vậy chỗ kia mình có thể điền
(*(&a))
Nhưng mà đề Yêu cầu: "chỉ được phép sử dụng con trỏ ‘p’ để truy cập nội dung ô nhớ của ‘a’ và ‘b’. " nên em nghĩ điền vào 2 chỗ trống kia phải thông qua con trỏ p anh !cài này mình chưa hiểu lắm , bạn có thể nói rõ hơn được không ?
Lưu ý là không có gì đảm bảo a và b nằm kế nhau à.
mình biết , nên mình không biết làm sao để in ra a , vì khi mà dùng con trỏ p trỏ đến a thì tới khi
printf("b = %ld\n", (long)(*p) );
nó sẽ không in ra giá trị b nữa .Cấp phát trên stack thì khả năng cao là liên tiếp. Mình đã thử và OK. Đang tìm tài liệu liên quan.
Nếu bạn có tài liệu CM nó là sai thì có thể chia sẻ. @_@! Cảm ơn.