YOMEDIA
Bài 9 - Biến cục bộ và biến toàn cục
Chia sẻ: Nguyễn Thị Phương Phương
| Ngày:
| Loại File: PDF
| Số trang:20
70
lượt xem
6
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Một lời gọi hàm có thể làm cho 1 hay 2 điều xuất hiện. Nếu hàm đã được khai báo là inline thì thân của hàm được mở rộng tại điểm gọi nó trong lúc dịch, ngoài ra hàm sẽ được gọi trong lúc chạy. Một lời gọi hàm làm cho điều khiển của chương trình được chuyển cho hàm được gọi, việc thực hiện của hàm đang chạy lúc đó bị tạm ngừng.
AMBIENT/
Chủ đề:
Nội dung Text: Bài 9 - Biến cục bộ và biến toàn cục
- Bài 9
BI N C C B VÀ BI N TOÀN C C
- Khai Báo Hàm
Khai báo m t hàm
Ki u tr v Tên hàm (ki u tham s , ki u
tham s ....);
Tham s là tùy ch n
- T mv c
T m v c xác nh ph m vi mà m t bi n có
th ư c truy xu t.
T m v c cũng xác nh th i gian t n t i c a
m t bi n
Có ba lo i bi n: bi n c c b , tham s hình
th c và bi n toàn c c.
- Bi n c c b
Bi n ư c khai báo bên trong m t hàm ư c
g i là bi n c c b
C++ cũng cho phép khái ni m bi n c c b
bên trong m t kh i mã.
Bi n c c b ch có th ư c dùng bên trong
kh i mã mà nó ư c khai báo.
Bi n c c b bên trong m t kh i mã ch t n t i
khi kh i mã ó ang th c thi
Kh i mã ph bi n nh t là hàm.
- Thân hàm là n i v i ph n còn l i c a
chương trình và vì v y chúng không nh
hư ng hay b nh hư ng b i các ph n khác.
D li u và mã c a hàm không th tương tác
v i d li u và mã c a hàm khác vì hai hàm
có t m v c khác nhau.
Các bi n ư c khai báo bên trong m t hàm
không nh h ong n bi n trong m t hàm
khác, ngay c khi chúng có tên trùng nhau.
- ví d
#include
void f1()
using namespace std; {
void f1(); char str[80];
int main() cout > str;
char str[] = "this is str in main()"; cout
- Khi m t bi n c c b trùng tên v i m t bi n bên
ngoài kh i mã mà nó ư c khai báo thì bi n bên
ngoài không b nh hư ng trong kh i mã ó.
Ví d : int main()
{ int i=10, j =100;
if (j>0) {
int i;
i = j/2;
cout
- Bi n toàn c c
Bi n toàn c c ư c khai báo bên ngoài các
hàm
Bi n toàn c c có nh hư ng toàn b chương
trình, ngo i tr b ph quy t b i bi n c c b
có cùng tên trong m t hàm.
Ví d :
- void drill(); void drill()
int count; // count and num_right are global {
int num_right; int count, a, b, ans;
int main() // Phát sinh s ng u nhiên gi a 0 và 99.
{ a = rand() % 100;
cout > count; for(count=0; count
- Các tham s hình th c
N u hàm dùng các tham s thì ph i khai báo
các bi n nh n giá tr c a các tham s này.
Các bi n này ư c g i là tham s hình th c.
Các tham s hình th c tác ng như bi n
c c b bên trong m t hàm. T m v c c a
tham s là ph m vi trong hàm ch a nó.
Ví d :
test(int a, int b)
- G i hàm v i con tr
#include void f(int *j)
using namespace std; {
void f(int *j); *j = 100; /*bi n ư c tr b i j
int main() ư c gán 100*/
{ }
int i;
int *p;
p = &i; // p tr i có th thay f(&i)
f(p);
cout
- Vi t hàm có hai tham s cube(int *n, int m)
tính m giá tr :
(*n)3 (*n+1)3 (*n+2)3.......(*n+m-1)3
- void cube(int *n, int num)
{
while(num) {
*n = *n * *n * *n;
num--;
n++;
}
}
- Tham s argc và argv
Mu n truy n thông tin vào m t chương trình khi
ch y nó, dùng các tham s dòng l nh truy n vào
cho hàm main(). M t tham s dòng l nh là thông tin
theo sau dòng l nh c a h i u hành.
Ví d mu n biên d ch chương trình C++ t giao di n
dòng l nh c a h i u hành, dùng
cl tên chng trình
C++ nh nghĩa hai tham s tùy ch n c a hàm
main() là argc và argv, chúng nh n tham s dòng
l nh.
- Tham s argc là m t s integer ch ra s tham s trên dòng l nh.
Nó luôn có giá tr nh nh t là 1 (tham s tên c a chương trình)
Tham s argv là m t con tr ch n m t m ng c a các con tr
ki u ký t . M i con tr trong m ng ch d n m t chu i ch a m t
tham s dòng l nh. Tên c a chương trình ư c tr b i argv[0],
argv[1] ch n tham s th nh t và argv[2] ch n tham s th
2,...
T t c các tham s dòng l nh ư c chuy n vào chương trình
dư i d ng chu i, như v y các tham s là con s s ph i ư c
chuy n i bên trong chương trình.
- #include
using namespace std;
int main(int argc, char *argv[])
{
if(argc!=2) {
cout
- #include
#include
using namespace std;
int main(int argc, char *argv[])
{
double a, b;
if(argc!=3) {
cout
- Câu l nh return
Có hai ho t ng quan tr ng:
Khi n cho th c thi trong m t hàm quay v
chương trình g i nó ngay t c th i
Có th ư c dùng tr v m t giá tr
- ví d
#include
using namespace std;
int find_substr(char *sub, char *str);
int main()
{
int index;
index = find_substr("three", "one two three four");
cout
- while(*p2 && *p2==*p) {
int find_substr(char
*sub, char *str) p++;
{ p2++;
int t; }
char *p, *p2; if(!*p2) return t; // return
index
for(t=0; str[t]; t++) {
}
p = &str[t];
return -1; // không có
p2 = sub;
}
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
Đang xử lý...