1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tài liệu Bài 9 - Biến cục bộ và biến toàn cục potx

20 460 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 94,02 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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ã đó... Biến toàn cụchàm trình, ngoại trừ bị phủ quyết

Trang 1

Bài 9

BIẾN CỤC BỘ VÀ BIẾN TOÀN CỤC

Trang 2

Khai Báo Hàm

tham số );

Trang 3

Tầm vực

thể được truy xuất

một biến

thức và biến toàn cục

Trang 4

Biến cục bộ

gọi là biến cục bộ

bên trong một khối mã

khối mã mà nó được khai báo

khi khối mã đó đang thực thi

Trang 5

 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

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

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

Trang 6

ví dụ

#include <iostream>

using namespace std;

void f1();

int main()

{

char str[] = "this is str in main()";

cout << str << '\n';

f1();

cout << str << '\n';

return 0;

}

void f1() {

char str[80];

cout << "Enter something: "; cin >> str;

cout << str << '\n';

}

Trang 7

 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<<" giá trị i bên trong: "<<i<<'\n';

} cout<<"giá trị i bên ngoài :"<<i<<'\n';

return 0;

}

Trang 8

Biến toàn cục

hàm

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ụ:

Trang 9

void drill();

int count; // count and num_right are global

int num_right;

int main()

{

cout << "Thử bao nhiêu lần: ";

cin >> count;

num_right = 0;

do {

drill();

count ;

} while(count);

cout << "Bạn có " << num_right << " lần đúng.\n";

return 0;

}

void drill() {

int count, a, b, ans;

// Phát sinh số ngẫu nhiên giữa 0 và 99.

a = rand() % 100;

b = rand() % 100;

for(count=0; count<3; count++) { cout << "Tổng " << a << " + " << b << "? "; cin >> ans;

if(ans==a+b) { cout << "Đúng\n";

num_right++;

return;

} } cout << "Đáp án là " << a+b << '\n';

}

Trang 10

Các tham số hình thức

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 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)

Trang 11

Gọi hàm với con trỏ

#include <iostream>

using namespace std;

void f(int *j);

int main()

{

int i;

int *p;

p = &i; // p trỏ i

f(p);

cout << i; // i = 100

return 0;

}

void f(int *j) {

*j = 100; /*biến được trỏ bởi j được gán 100*/

}

có thể thay f(&i)

Trang 12

Viết hàm có hai tham số cube(int *n, int m) để tính m giá trị:

Trang 13

void cube(int *n, int num) {

while(num) {

*n = *n * *n * *n;

num ;

n++;

}

}

Trang 14

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

 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.

Trang 15

 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.

Trang 16

#include <iostream>

using namespace std;

int main(int argc, char *argv[])

{

if(argc!=2) {

cout << "You forgot to type your name.\n"; return 1;

}

cout << "Hello " << argv[1] << '\n';

return 0;

}

Trang 17

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

double a, b;

if(argc!=3) {

cout << "Usage: add num num\n"; return 1;

}

a = atof(argv[1]);

b = atof(argv[2]);

cout << a + b;

return 0;

}

Trang 18

Câu lệnh return

 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ị

Trang 19

ví dụ

#include <iostream>

using namespace std;

int find_substr(char *sub, char *str);

int main()

{

int index;

index = find_substr("three", "one two three four"); cout << "Index của three là " << index; // index là 8 return 0;

}

Trang 20

int find_substr(char

*sub, char *str)

{

int t;

char *p, *p2;

for(t=0; str[t]; t++) {

p = &str[t];

p2 = sub;

while(*p2 && *p2==*p) { p++;

p2++;

} if(!*p2) return t; // return index

} return -1; // không có }

Ngày đăng: 24/02/2014, 19:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w