Câu hỏi của tôi là căn cứ vào đoạn mã sau:C con trỏ ký hiệu so với ký hiệu mảng: Khi đi qua với chức năng
int myfunct(int ary[], int arysize)
int myfunct2(int *ary, int arysize)
int main(void){
int numary[10];
myfunct(numary, 10)
myfunct2(numary, 10)
return;
}
int myfunct(int ary[], int arysize) {
//Whatever work is done
}
int myfunct2(int *ary, int arysize) {
// Whatever work is done
}
Có một lý do để sử dụng một trong những khác không? Để xây dựng, khi có liên quan với mảng số, có bất kỳ lý do nào sẽ muốn sử dụng ký hiệu con trỏ trên ký hiệu mảng. Nếu người ta sử dụng ký hiệu con trỏ thì trong số học con trỏ hàm sẽ được sử dụng vv .. VÀ nếu người ta sử dụng ký hiệu mảng [], người ta có thể làm việc với mảng như bình thường. Tôi mới lập trình và hiện tại tôi không thấy bất kỳ lợi ích nào khi sử dụng ký hiệu con trỏ.
Câu hỏi chính xác của tôi là có bất kỳ lý do gì để chuyển một mảng số tới hàm bằng cách sử dụng ký hiệu con trỏ và do đó sử dụng thao tác con trỏ trong hàm.
Vì vậy, nếu tôi sử dụng * ary trái ngược với ary [], tôi có thể sử dụng ary [0] trong hàm không? – SystemFun
@Vlad, vâng ............, –
@Vlad Tôi nghĩ bạn đã hiểu câu trả lời của tôi? 'ary [0]' là '* (ary + 0)' là '* ary', bất kể ngữ cảnh. Nếu bạn có thể sử dụng nó, bạn có thể sử dụng cái kia (trong biểu thức, nghĩa là). – melpomene