intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Kỹ thuật lập trình: Bài 7 - TS. Ngô Hữu Dũng

Chia sẻ: Cao Thi Ly | Ngày: | Loại File: PDF | Số trang:30

47
lượt xem
2
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Kỹ thuật lập trình: Bài 7 do TS. Ngô Hữu Dũng biên soạn cung cấp cho người học các kiến thức: Khái niệm con trỏ, con trỏ và địa chỉ, kiểu con trỏ, phạm vi ứng dụng con trỏ, lợi hại của con trỏ, kiểu nguyên thủy, con trỏ và hằng số, con trỏ và đối số của hàm,...

Chủ đề:
Lưu

Nội dung Text: Bài giảng Kỹ thuật lập trình: Bài 7 - TS. Ngô Hữu Dũng

Kỹ thuật lập trình<br /> Bài 7 – Kiểu con trỏ<br /> TS. Ngô Hữu Dũng<br /> <br /> 181<br /> <br /> Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017<br /> <br /> Ngô Hữu Dũng<br /> <br /> Khái niệm con trỏ (pointer)<br />  Con trỏ là biến mà giá trị của nó là địa chỉ bộ nhớ<br />  Địa chỉ bộ nhớ?<br /> <br /> <br /> scanf(“%d”,&i);<br /> <br /> // &i là địa chỉ bộ nhớ của biến i<br /> <br /> Khai báo<br />  type * variable_name;<br />  Con trỏ lưu địa chỉ bộ nhớ<br /> <br /> <br /> <br /> <br /> <br /> <br /> 182<br /> <br /> p = 0073FB60<br /> Biến<br /> <br /> i = 20<br /> <br /> Địa chỉ<br /> <br /> i<br /> 0073FB60<br /> int i = 20;<br /> p<br /> 0073FB54<br /> int * p; // Khai báo con trỏ p<br /> p = &i; // Con trỏ p được gán bằng địa chỉ của biến i<br /> Ta nói con trỏ p “trỏ vào” biến i<br /> Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017<br /> <br /> Ngô Hữu Dũng<br /> <br /> Giá trị<br /> 20<br /> <br /> 0073FB60<br /> <br /> Con trỏ và địa chỉ<br /> int x;<br /> // Biến số nguyên x<br /> // Con trỏ p kiểu số nguyên<br /> 2. int *p;<br /> 3. p = &x;<br /> // p trỏ vào x<br /> 4. x = 20;<br /> 5. printf("%d ", x);<br /> // Giá trị của x<br /> 6. printf("%d ", *p);<br /> // Giá trị của x<br /> // Địa chỉ của x<br /> 7. printf("%p ", &x);<br /> 8. printf("%p ", p);<br /> // Địa chỉ của x<br /> 9. *p = 40;<br /> 10. printf("Gia tri: %d = %d" , *p, x);<br /> 11. printf("Dia chi: %p = %p" , p, &x);<br /> 1.<br /> <br /> 183<br /> <br /> Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017<br /> <br /> Ngô Hữu Dũng<br /> <br /> Kiểu con trỏ<br /> <br /> <br /> Khai báo: Dùng dấu *<br /> <br /> <br /> <br /> <br /> Địa chỉ của biến mà con trỏ trỏ vào<br /> <br /> <br /> <br /> <br /> *p = x<br /> <br /> In ra màn hình địa chỉ: Dùng %p<br /> <br /> <br /> <br /> <br /> p = &x<br /> <br /> Giá trị của biến mà con trỏ trỏ vào: Dùng dấu *<br /> <br /> <br /> <br /> <br /> int *p;<br /> <br /> printf(“%p = %p”, p, &x);<br /> <br /> Chú ý: Phân biệt các dấu * và các dấu &<br /> 184<br /> <br /> Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017<br /> <br /> Ngô Hữu Dũng<br /> <br /> Sử dụng con trỏ<br /> <br /> <br /> Chưa trỏ vào biến<br /> <br /> <br /> <br /> <br /> <br /> int *p;<br /> *p = 40; // Run-time error!<br /> <br /> Trỏ vào biến<br /> <br /> <br /> <br /> <br /> <br /> <br /> 185<br /> <br /> int x, *p1, *p2;<br /> p1 = &x;<br /> // Trỏ p1 vào biến x<br /> *p1 = 40;<br /> // x = 40;<br /> p2 = p1;<br /> // gán trực tiếp, tương đương với p2 = &x;<br /> *p2 = 50;<br /> // x = 50;<br /> *p1 = 60;<br /> // x = 60;<br /> Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017<br /> <br /> Ngô Hữu Dũng<br /> <br />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2