Phạm vi cục bộ và phạm vi toàn cầu trong C++

Phạm vi của biến là phạm vi của tập lệnh nơi nó hiển thị. Các biến có phạm vi toàn cầu hoặc cục bộ. Biến toàn cục chỉ tồn tại một lần trong tập lệnh và hiển thị trong mọi chức năng. Các sửa đổi đối với nó trong một chức năng là vĩnh viễn và hiển thị đối với tất cả các chức năng. Trừ khi được khai báo khác, tất cả các biến trong tập lệnh là toàn cầu. Biến toàn cục hữu ích cho các giá trị tương đối không đổi hoặc nhiều chức năng trong tập lệnh phải truy cập, chẳng hạn như id phiên

Tuy nhiên, một biến cục bộ có phạm vi giới hạn. nó chỉ tồn tại trong khối mà nó được khai báo trong. Khi khối đó kết thúc, biến bị hủy và giá trị của nó bị mất. Một biến cục bộ cùng tên được khai báo ở nơi khác là một biến khác. Một biến cục bộ thậm chí có thể tồn tại nhiều lần cùng một lúc, nếu khối của nó được nhập lại trước khi thoát - i. e. một lời gọi hàm đệ quy. Mỗi lần gọi hàm sẽ có một biến cục bộ riêng biệt

Các biến cục bộ phải được khai báo rõ ràng, dưới dạng tham số cho hàm tập lệnh (tại đây) hoặc với câu lệnh LOCAL (tại đây). Chúng được sử dụng để truyền rõ ràng các tham số cho các hàm hoặc dưới dạng "không gian đầu" tạm thời cho một hàm mà không có tác dụng phụ của việc sửa đổi biến toàn cục

Một biến cục bộ có cùng tên với một biến trong phạm vi khác sẽ được ưu tiên hơn biến bên ngoài. Ví dụ: một biến cục bộ có tên là $x được ưu tiên hơn và sẽ "ẩn", một biến toàn cục có tên là $x


  <$x = "fragile">        
  
    <$x = "test">         
    ...
  
  The value of x is $x    

Trong khối LOCAL, tham chiếu đến $x tham chiếu đến biến cục bộ. toàn cầu $x bị ẩn. Do đó, giá trị $x toàn cầu "_______9_______" không bị mất khi khối LOCAL kết thúc

Hàm bên trong có quyền truy cập vào cả ba biến vì cả ba biến đều tồn tại trong khi hàm bên trong đang chạy

Lý do mã bên ngoài không thể truy cập các biến bên trong các hàm bên trong là vì các hàm đó không chạy (chúng không tồn tại trên ngăn xếp hoặc bất cứ thứ gì nó được gọi) cho đến khi các hàm bên trong này được gọi trong mã. Và sau đó chúng chỉ tồn tại trong khoảng thời gian cần thiết trong khoảng thời gian cần thiết để thực hiện công việc của chúng

Nếu chúng ta giả sử rằng mã ví dụ nằm trong hàm 'main()'. Trong khi 'main()' đang chạy, đó là mã duy nhất đang chạy. Trong khi ‘outer()’ đang chạy, chỉ có mã outside() và main() tồn tại. Trong khi 'inner()' đang chạy, mã bên trong(), bên ngoài() và mã chính() nằm trong bộ nhớ hoặc đang chạy

Các chức năng kết thúc theo thứ tự ngược lại mà chúng đã bắt đầu. Chức năng cuối cùng bắt đầu là chức năng đầu tiên kết thúc. Nói cách khác, khi mỗi chức năng kết thúc, 'củ hành' được mở ra, máy tính có thể 'thấy' các giá trị ban đầu cho X

Ngay cả khi chúng ta giả định rằng máy tính biết rằng các biến trong cùng sẽ tồn tại vào một thời điểm nào đó trong tương lai, thì sẽ quá khó hiểu để phân loại biến nào có thể nhìn thấy và biến nào không.

dòng dưới cùng. Hãy coi các hàm bên trong là lười biếng – hành vi mặc định của chúng là sử dụng biến ngoài cùng (toàn cục) nếu tồn tại cùng tên. Các hàm chỉ bận tâm tạo một biến mới bên trong nếu được thúc giục làm như vậy bởi từ khóa “var”, và sau đó hàm bên trong này quá mệt mỏi và không thể tạo biến mới đó để tìm kiếm bất kỳ biến nào khác có cùng tên ở bên ngoài. Hàm bên trong sẽ chỉ sử dụng bất cứ thứ gì gần với nó nhất

Ví dụ

var X = 100;

function outer() {
       var X = 99;

       function inner() {
               var X = 98;
                }
 }

Khi bắt đầu khối mã ở trên, X === 100 Trong khi chức năng bên ngoài () đang chạy, một X === 99 khác // trừ khi chúng ta bỏ qua 'var' Trong khi chức năng bên trong () đang chạy, một X = khác

Nếu chúng ta quên sử dụng từ khóa ‘var’ trong các hàm bên ngoài () hoặc bên trong (), thì chúng ta đã vô tình (hoặc cố ý) ghi đè giá trị của X trong lớp của hàm hành tây ngay bên ngoài. Đó được gọi là 'tác dụng phụ'

Là thành viên, bạn cũng sẽ có quyền truy cập không giới hạn vào hơn 84.000 bài học về toán, tiếng Anh, khoa học, lịch sử, v.v. Ngoài ra, nhận các bài kiểm tra thực hành, câu đố và huấn luyện được cá nhân hóa để giúp bạn thành công

Nhận quyền truy cập không giới hạn vào hơn 84.000 bài học

Chỉ mất vài phút để thiết lập và bạn có thể hủy bất cứ lúc nào

Đã đăng ký?

Tài nguyên do giáo viên tạo ra cho giáo viên

Hơn 30.000 bài học video & tài nguyên giảng dạy‐tất cả ở một nơi.

bài học video

Câu đố và Bảng tính

Tích hợp lớp học

kế hoạch bài học

Tôi chắc chắn sẽ giới thiệu Study. com đến các đồng nghiệp của tôi. Nó giống như một giáo viên vung cây đũa thần và làm việc cho tôi. Tôi cảm thấy như đó là một cứu cánh

Phạm vi toàn cục và cục bộ trong C là gì?

Các biến được định nghĩa bên ngoài hàm Chúng được gọi là biến toàn cục và phạm vi của chúng là toàn cục . Các biến được định nghĩa bên trong một hàm là các biến cục bộ.

Sự khác biệt giữa phạm vi địa phương và phạm vi toàn cầu là gì?

Biến toàn cục hữu ích cho các giá trị tương đối không đổi hoặc nhiều chức năng trong tập lệnh phải truy cập, chẳng hạn như id phiên. Tuy nhiên, một biến cục bộ có phạm vi giới hạn. nó chỉ tồn tại trong khối mà nó được khai báo trong. Khi khối đó kết thúc, biến bị hủy và giá trị của nó bị mất

Phạm vi toàn cầu trong C là gì?

Phạm vi tệp. Các biến này thường được khai báo bên ngoài tất cả các hàm và khối, ở đầu chương trình và có thể được truy cập từ bất kỳ phần nào của chương trình. Chúng còn được gọi là các biến phạm vi toàn cầu vì chúng có thể được truy cập trên toàn cầu . ví dụ 1. C.

3 mức phạm vi trong C là gì?

Đây là ba mức phạm vi trong một chương trình C++. toàn cầu, cục bộ và khối .