Dạ Chào mọi người.
Em là Học
Môn nay em xin hỏi về Đoạn code sau đây:
Em xin post code của em qua codepad
http://codepad.org/SJ8X4BPW
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
int n;
printf("Nhap N: ");
scanf("%d",&n);
char *c;
c = (char *) calloc(n,sizeof(char *));
// Hoanh thanh viec cap phat
for( int i= 0 ; i < n ; i++)
{
fflush(stdin);
printf("A[%d]= ",i);
scanf("%c", &c[i]); // cai nay la ta dang truy xuat den dia chi cua phan tu trong mang.
// Neu ta Truy xuat den 1 phan tu chu ko phai den nhieu n phan tu trong mang >>
// ta khong can gan dia chi cho no vi ban than no da la 1 dia chi
}
for( int i = 0 ; i < n ; i++)
{
printf("A[%d]= %4c ",i,c[i] - 32);
}
getch();
}
- Vấn đề em muốn hỏi ở đây là:
scanf("%c", &c[i]); (Dòng thứ 17 trong đoạn code trên ). (1)
Em nhập mảng con trỏ thì em cần đến cái dấu ‘&’. Đằng trước nó , nhưng khi em thay nó bằng.
scanf("%c", c[i]); (2)
thì nó lại ko thể tự truy xuat đến địa chỉ ô nhớ của mỗi phần tử , do đó em đã test như sau.
scanf("%c", c);(3)
Thì nó lại có thể tự truy cập đến ô nhớ của c[0] là thực hiện nhập phần tử cho c[0].
(Tại sao dòng (2) chúng ta ko thể như dòng (3) ? ).
Em thực sự còn hơi mơ hồ về cái này mong mọi người giúp đỡ .
Cảm ơn mọi người đã xem topic của em.