Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (894.95 KB, 16 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
<b>GV: Nguyễn Hữu Thể</b>
<b>Hàm và thủ tục</b>
<b>Con trỏ</b>
<b>I.1. Hàm</b>
hàm thực hiện xong.
<kiểu dữ liệu> <tên hàm> (danh sách các tham số)
{
//Thân hàm
<b>Ví dụ: tính tổng 2 số nguyên a, b. Trả về giá trị là tổng 2 số</b>
Gọi hàm trong main()
int TinhTong(int a, int b)
{
int tong;
tong = a + b;
return tong;
}
int TinhTong(int a, int b)
{
return (a+b);
}
void main()
{
int a=4, b=5;
int tmp;
tmp = TinhTong(a,b);
printf(“Tong 2 so:%d”
,tmp);
void main()
int a=4, b=5;
dữ liệu.
<b>void</b> <tên hàm> (danh sách các tham số)
{
//Thân hàm, xử lý các dữ liệu
<b>Ví dụ: tính tổng 2 số nguyên a, b. In kết quả ra màn hình</b>
Gọi hàm trong main()
void TinhTong(int a, int b)
{
int tong;
tong = a + b;
printf(“%d”,tong);
}
void TinhTong(int a, int b)
{
printf(“%d”,(a+b));
}
void main()
{
int a=4, b=5;
TinhTong(a,b);
}
void main()
{
<b>Cách 1: khai báo prototype</b> <b>Cách 2: để hàm main sau cùng</b>
#include<stdio.h>
#include<conio.h>
//khai báo prototype
void TinhTong(int a, int b);
void main()
{
int a=4, b=5;
TinhTong(a,b);
getch();
}
void TinhTong(int a, int b)
{
int tong;
tong = a + b;
printf(“%d”,tong);
#include<stdio.h>
#include<conio.h>
void TinhTong(int a, int b)
{
int tong;
tong = a + b;
printf(“%d”,tong);
}
void main()
{
int a=4, b=5;
TinhTong(a,b);
getch();
<b>II.1 Truy cập địa chỉ</b>
tính cơ bản sau được liên kết đến nó:
Tên định danh của biến
Kiểu dữ liệu liên quan
Địa chỉ trong bộ nhớ
<b>Ví dụ: khai báo biến</b>
int n = 10;
<i>n là tên định danh của biến, có kiểu int và được lưu trữ đâu đó</i>
<i>trong bộ nhớ máy tính.</i>
Xuất:
printf(“%d”,n); //in nội dung biến
<b>…</b>
<b>…</b>
<b>…</b>
<b>10</b>
<b>Địa chỉ: FFF0</b>
<b>Ví dụ:</b>
void main()
{
int n=10;
printf(“%d”,n); //in nội dung biến
printf(“%0X”,&n);//in địa chỉ của biến
}
<b>Kết quả thực hiện như sau: </b>
• Ta thấy giá trị của n là 10
• Địa chỉ biến n theo số hexa là FFF0
sử dụng biến tham chiếu (references)
type: kiểu dữ liệu
alias: tên biến tham chiếu
name: tên của biến mà biến alias tham chiếu đến
void main()
{
int n=10;
int& r=n;
printf(“n=%d, r=%d”,n,r);
n++;
printf(“n=%d, r=%d”,n,r);
<b>Kết quả</b>
type: kiểu dữ liệu
var: biến con trỏ
<b>Ví dụ:</b>
int x=10;
int* p;
p=&x; //p lưu địa chỉ của x, hay p trỏ đến x
(*p): nội dung của p
<b>Ví dụ:</b>
void main()
{
int x=10;
int* p=&x; //p tr? d?n x
printf("Dia chi cua x: %0X \n",&x);
printf("Noi dung cua x: %d \n",x);
printf("Dia chi cua p: %0X \n",&p);
printf("Noi dung cua p: %0X",p);
printf("Noi dung tai dia chi ma p tro den: %d",*p);
}
<b>FFEE</b>
<b>FFF0</b>
(&x)
<b>Địa chỉ</b>
<b>FFF0</b>
<b>p</b>
<b>10</b>
(x)
<b>x</b>
void HoanVi_1(int a, int b)
{
int tmp = a;
a = b;
b = tmp;
}
void HoanVi_2(int *a, int *b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
void HoanVi_3(int &a, int &b)
{
int tmp = a;
a = b;
b = tmp;
void main()
{
int a = 1, b = 2;
HoanVi_1(a, b);
printf("a = %d",a);
void main()
{
int *a = 1, *b = 2;
HoanVi_2(a, b);
printf("a = %d",*a);
printf("b = %d",*b);
}
void main()
{
int a = 1, b = 2;
HoanVi_3(a, b);
int a[] = {4,5,7,9};
Truy xuất phần tử thứ hai a[1]=5
Sử dụng con trỏ:
• Tên mảng xem như con trỏ
• <b>Truy xuất phần tử thứ i: a[i] hay *(a+i)</b>
int a[2][3]={{4,5,7},
{9,10,12}};
Truy xuất phần tử thứ i=1,j=1 là: a[1][1]=10
Sử dụng con trỏ:
• Tên mảng xem như con trỏ
1. Cho mảng 1 chiều int a[] = {4,5,7,9}
Viết thủ tục xuất giá trị mảng ra màn hình (sử dụng con trỏ truy
xuất mảng).
2. Cho mảng 2 chiều int a[2][3]={{4,5,7},{9,10,12}};