Bài 9 - Biến cục bộ và biến toàn cục
Số trang: 20
Loại file: pdf
Dung lượng: 94.02 KB
Lượt xem: 18
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
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.
Nội dung trích xuất từ tài liệu:
Bài 9 - Biến cục bộ và biến toàn cụcBài 9BI N C C B VÀ BI N TOÀN C CKhai Báo Hàm Khai báo m t hàmKi u tr v Tên hàm (ki u tham s , ki u tham s ....); Tham s là tùy ch nT 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 achương trình và vì v y chúng không nhhư 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ácv i d li u và mã c a hàm khác vì hai hàmcó t m v c khác nhau.Các bi n ư c khai báo bên trong m t hàmkhông nh h ong n bi n trong m t hàmkhá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; coutBi 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; countCá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 jint 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)3void 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 trki u ký t . M i con tr trong m ng ch d n m t chu i ch a m ttham 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 th2,...T t c các tham s dòng l nh ư c chuy n vào chương trìnhdư i d ng chu i, như v y các tham s là con s s ph i ư cchuy 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á trví 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 indexfor(t=0; str[t]; t++) { }p = &str[t]; return -1; // không cóp2 = sub; } ...
Nội dung trích xuất từ tài liệu:
Bài 9 - Biến cục bộ và biến toàn cụcBài 9BI N C C B VÀ BI N TOÀN C CKhai Báo Hàm Khai báo m t hàmKi u tr v Tên hàm (ki u tham s , ki u tham s ....); Tham s là tùy ch nT 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 achương trình và vì v y chúng không nhhư 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ácv i d li u và mã c a hàm khác vì hai hàmcó t m v c khác nhau.Các bi n ư c khai báo bên trong m t hàmkhông nh h ong n bi n trong m t hàmkhá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; coutBi 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; countCá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 jint 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)3void 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 trki u ký t . M i con tr trong m ng ch d n m t chu i ch a m ttham 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 th2,...T t c các tham s dòng l nh ư c chuy n vào chương trìnhdư i d ng chu i, như v y các tham s là con s s ph i ư cchuy 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á trví 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 indexfor(t=0; str[t]; t++) { }p = &str[t]; return -1; // không cóp2 = sub; } ...
Tìm kiếm theo từ khóa liên quan:
Khai báo hàm các tham số hình thức gọi hàm với con trỏ tham số agrc và argv câu lệnh return trình biên dịch chương trìnhGợi ý tài liệu liên quan:
-
Bài giảng Lập trình cho khoa học dữ liệu - Bài 3: Các thao tác cơ bản trong Python
21 trang 95 0 0 -
Bài giảng Tin học đại cương: Bài 6 - Nguyễn Văn Đồng
36 trang 35 0 0 -
Bài giảng Tin học đại cương (Phần 3) - Chương 6: Hàm
27 trang 31 0 0 -
Bài giảng Tin học cơ sở 2: Hàm
29 trang 31 0 0 -
111 trang 30 0 0
-
Bài giảng Lập trình C căn bản: Chương 6 - Phạm Thế Bảo
68 trang 26 0 0 -
Bài giảng Tin đại cương: Chương 6 - Nguyễn Quỳnh Diệp
36 trang 23 0 0 -
Bài giảng Lập trình nâng cao (Advanced Programming) - Chương 8: Hàm trong C
17 trang 23 0 0 -
Bài giảng Tin học đại cương: Bài 10 - Chương trình con trong C
13 trang 23 0 0 -
65 trang 22 0 0