xuat(int a[10]) hoàn toàn tương đương với xuat(int *a), tức đối số là biến con trỏ, do đó khi printf phải thêm dấu * để chuyển thành giá trị để in.
vì a là mảng ( là 1 chuổi ô nhó liên tiếp nhau, mặt định a là ô nhớ đầu tiên == a[0]) khi truyền mảng vào hàm thức chất là truyền địa chỉ của ô nhớ đầu tiên trong mảng, còn n là biến thông thường, xuat(int n) hoàn toàn khác với xuat(int *n).
mảng a trong main là nơi ta khai báo, mặt định trong main() lúc này là biến giá trị thông thường, nếu ta khai báo trong hàm xuat() mảng a[10] này thì trong hàm xuất nó mặt định là biến giá trị, khi printf không thêm dấu * gì hết, mà dùng a[i], chứ không được phép dùng a++
Cho 1 mảng int a[10];
Thì a thôi, sẽ là con trỏ hằng trỏ vào vị trí a[0].
a++ sẽ hiểu là thay đổi con trỏ, trỏ vào vị trí khác a[0] (tùy theo số lần chạy qua bước ++ mà thành a[1], a[2],...)
Con trỏ hằng, nghĩa là không thay đổi mà trỏ sang chỗ khác được.
Do vậy, đoạn code trong hàm main bị lỗi.
Tuy nhiên, khi int a[10] để vào tham số của hàm, thì a là 1 biến con trỏ mới, hoàn toàn là con trỏ động (tương đương *a), trỏ vào cái vùng bộ nhớ gốc lúc gọi hàm.
Lúc này, con trỏ a không còn là con trỏ hằng nữa, nên có thể thay đổi vị trí trỏ được, nên a++ chạy tốt.
lấy ví dụ:
======================
void xuat(int a[10],int n)
{
for(int i=0;i<n;i++) printf("%d",*(a++));
}
void main()
{
int b[10];
xuat(b,10);// trong main gọi hàm xuất bên trên
}
===================
Tìm hiểu các giải thuật sắp xếp cơ bản trên cấu trúc dữ liệu mảng Tìm hiểu các giải thuật tìm kiếm cơ bản trên cấu trúc dữ liệu mảng Đánh giá ...GiaiThuat.Com
Đăng ký:
Đăng Nhận xét (Atom)
Bài đăng phổ biến
-
Cách Boot USB đối với Main Gigabyte Để boot từ main gigabye bạn xem main của bạn có hỗ trợ không: nhấn ESC, DEL, F12...tùy từng máy bạn nên ...
-
Cách Sửa lỗi Font AOE khó chịu bằng một số thủ thuật khá đơn giản Copy Font vào mục Font của Windows : http://www.mediafire.com/download/mdd...
-
Viết chương trình tính Log(a)x với a,x là hai số thực nhập vào từ bàn phím, và x>0, a>0, a!=1 Hướng dẫn: sử dụng công thức: Log(a)x=Ln...
-
Hướng dẫn mở UEFI cho Dell N4110 và Vostro 3750 Tình cờ hôm nay ghé sang 1 số diễn đàn của Nga và Bios Mod mình đã tìm được cách Unlocked UE...
-
BritainTourist .Com PhumyGroup.com SonhaiGroup.com LiaoningGroup .Com S haanxiGroup .com EchinaTourist.com T echnologyJewelry ....
-
Vacationnews.Xyz Vacationsnews.Xyz Vacationsworld.Xyz Vantagecreditunion.Xyz Venturenews.Xyz Ventureworld.Xyz Vermontattorney.Xyz Vermontho...
-
Ugandatravel.Xyz Ukattorney.Xyz Ukhotel.Xyz Uklawyers.Xyz Uklawyer.Xyz Ukonline.Xyz Ukrainehome.Xyz Ukrainehotel.Xyz Ukraineinsurance.Xyz U...
-
SacomGold.com mnTourist.com Anbaoco.com SacomFinance.com VinaElectronics.com LatviaNet.com NationalAirway.com SacomInsurance.com SacomHome.c...
-
Walmartscholarship.Xyz Wapnews.Xyz Waponline.Xyz Wapworld.Xyz Washingtonattorney.Xyz Washingtonhome.Xyz Washingtoninsurance.Xyz Washingtonl...
-
AirlineDomains.com Make Offer TouristDomains.com Make Offer MinhphuGroup.com Make Offer TurkeyDomain.com Make Offer TouristDomain.com Make O...
Không có nhận xét nào:
Đăng nhận xét