Computer >> Máy Tính >  >> Lập trình >> lập trình C

C Chương trình khai báo lại biến toàn cục

Chúng ta sẽ hiểu cách C và C ++ hoạt động khác nhau trong trường hợp chúng ta khai báo lại một biến toàn cục mà không khởi tạo, khai báo lại biến toàn cục với khởi tạo, khai báo lại biến toàn cục và khởi tạo chúng hai lần. Ngoài ra, chúng tôi sẽ lặp lại các kết hợp trên với các biến cục bộ.

1. A) Chương trình C:Khai báo lại các biến Toàn cục mà không cần khởi tạo

#include <stdio.h>
int var;
int var;
int main(){
   printf("Var = %d",var);
   return 0;
}

Đầu ra

Var = 0

B) Chương trình C ++:Khai báo lại các biến Toàn cục mà không cần khởi tạo

#include <iostream>
using namespace std;
int var;
int var;
int main(){
   cout<<"Var = "<<var;
   return 0;
}

Đầu ra

Compilation Error: int var;
main.cpp:3:5: note: ‘int var’ previously declared here

Kết quả :- C cho phép khai báo lại các biến toàn cục mà không cần khởi tạo. Giá trị vẫn là 0. C ++ đưa ra lỗi Biên dịch mà biến được khai báo lại.

2. A) Chương trình C:Khai báo lại các biến cục bộ không có khởi tạo

#include <stdio.h>
#include <stdio.h>
int main(){
   int var;
   int var;
   printf("Var = %d",var);
   return 0;
}

Đầu ra

error: redeclaration of ‘var’ with no linkage

B) Chương trình C ++:Khai báo lại các biến cục bộ mà không cần khởi tạo

#include <iostream>
using namespace std;
int main(){
   int var;
   int var;
   cout<<"Var = "<<var;
   return 0;
}

Đầu ra

error: redeclaration of ‘int var’

Kết quả :- Cả C và C ++ đều không cho phép khai báo lại các biến cục bộ khi chưa thực hiện khởi tạo. Cả hai chương trình đều không thành công trong quá trình biên dịch.

3. A) Chương trình C:Khai báo lại các biến Toàn cục với khởi tạo

#include <stdio.h>
int main(){
   int var;
   int var=10;
   printf("Var = %d",var);
   return 0;
}

Đầu ra

Var = 10

B) Chương trình C ++:Khai báo lại các biến Toàn cục với việc khởi tạo

#include <iostream>
using namespace std;
int var;
int var=10;
int main(){
   cout<<"Var = "<<var;
   return 0;
}

Đầu ra

main.cpp:7:9: error: redeclaration of ‘int var’
int var;

Kết quả :-C cho phép khai báo lại biến Toàn cục nếu nó chưa được khởi tạo. Chương trình C ++ không thành công trong quá trình biên dịch.

4. A) Chương trình C:Khai báo lại các biến Toàn cục với khởi tạo

#include <stdio.h>
int var;
int var=10;
int main(){
   printf("Var = %d",var);
   return 0;
}

Đầu ra

error: redeclaration of ‘var’ with no linkage

B) Chương trình C ++:Khai báo lại các biến cục bộ với khởi tạo

#include <iostream>
using namespace std;
int main(){
   int var;
   int var=10;
   cout<<"Var = "<<var;
   return 0;
}

Đầu ra

error: redeclaration of ‘int var

Kết quả :-Cả C và C ++ đều không cho phép khai báo lại các biến cục bộ ngay cả khi nó chưa được khởi tạo. Cả hai chương trình đều bị lỗi khi biên dịch