Em mới nghiên cứu về C nhưng vẫn chưa hiểu:
- ý nghĩa của ‘&’ trong scanf
- Khi nào thì ta dùng ‘&’ và khi nào thì không cần
Mong a/c giải đáp giúp em ạ.
Em mới nghiên cứu về C nhưng vẫn chưa hiểu:
Mong a/c giải đáp giúp em ạ.
Cái này đúng bài là phần viết hàm mới dạy cách truyền tham số tức là sau if
, switch
, for
, while
, phép tính.
&
này trong C có hai nghĩa.
Do bạn mới học về C nên mình sẽ tạm thời chưa giải thích gì vội, đến khi có đủ kiến thức chắc bạn cũng sẽ tự tìm hiểu được.
Mình cũng có post nói sơ qua về cái này nè. Bạn đọc qua nha.
Mình có nghe 1 anh nói đơn giản như thế này. Nếu như bạn chỉ học đến phần viết hàm thôi. Thì chỉ cần hiểu là “Khi hàm đó thay đổi giá trị của biến thì bạn sử dụng & và khi bạn muốn truyền cái giá trị gì đó từ bàn phím vào biến thì cũng sử dụng &”
Không biết có đúng k, nhưng nghe cũng dễ hiểu
Đúng nhưng chưa đủ. Như đoạn code này của mình thì có cần &
đâu.
int *p = (int*)malloc(sizeof(int));
scanf("%d", p);
Vậy nghĩa là miễn sao đưa vô scanf()
địa chỉ của biến muốn nhập vô là được.
Không biết đúng hay sai mà đi truyền đạt lại cho người khác. Vậy thì chết.
Để hiểu và sử dụng được con trỏ trong C, trước tiên bạn cần hiểu về khái niệm địa chỉ ở trong C. Nếu bạn nào theo dõi khóa học C bá đạo của mình từ đầu thì chắc đã thấy mình nhắc tới khái niệm này rồi. Phần này ta sẽ làm rõ vấn đề này.
int number;
printf("\nNhap number = ");
scanf("%d", &number);
printf("\nnumber = %d", number);
Bạn hãy nhìn ví dụ trên, tại sao khi dùng hàm scanf
chúng ta cần truyền vào &number
, còn hàm printf
ta lại không có dấu &
kia? Bởi vì nếu bạn muốn nhập giá trị cho biến, hàm scanf
cần biết địa chỉ của biến đó ở trong bộ nhớ.
p/s: Copy lời mở đầu bài con trỏ từ blog của mình.
Còn tại sao ở đây không cần &
int *p = (int*)malloc(sizeof(int));
scanf("%d", p);
=> Bởi vì giá trị của p là địa chỉ mà. => Bạn vẫn truyền vào địa chỉ
:)) thì mình chưa đủ trình độ để xác thực câu này đúng hết mọi khía cạnh hay chưa. Nhưng mà nếu như chỉ mới nhập môn thì nói thế sẽ giúp dễ hiểu hơn
Nếu là chuỗi thì lại càng không đúng