Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C เพื่อการประกาศซ้ำของตัวแปรส่วนกลาง


เราจะเข้าใจว่า C และ C++ มีพฤติกรรมแตกต่างกันอย่างไร ในกรณีที่เราประกาศตัวแปรโกลบอลอีกครั้งโดยไม่ได้กำหนดค่าเริ่มต้น ให้ประกาศตัวแปรส่วนกลางอีกครั้งด้วยการกำหนดค่าเริ่มต้น ประกาศตัวแปรส่วนกลางอีกครั้ง และกำหนดค่าเริ่มต้นซ้ำสองครั้ง นอกจากนี้ เราจะทำซ้ำชุดค่าผสมข้างต้นกับตัวแปรท้องถิ่น

1. A) โปรแกรม C :ประกาศตัวแปรโกลบอลใหม่โดยไม่มีการเริ่มต้น

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

ผลลัพธ์

Var = 0

B) โปรแกรม C++ :ประกาศตัวแปรโกลบอลใหม่โดยไม่มีการเริ่มต้น

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

ผลลัพธ์

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

ผลลัพธ์ :- C อนุญาตให้ประกาศตัวแปรทั่วโลกซ้ำโดยไม่ต้องเริ่มต้น ค่ายังคงเป็น 0 C++ ทำให้เกิดข้อผิดพลาดในการรวบรวมที่ตัวแปรถูกประกาศใหม่

2. A) โปรแกรม C :การประกาศตัวแปรในเครื่องใหม่โดยไม่มีการเริ่มต้น

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

ผลลัพธ์

error: redeclaration of ‘var’ with no linkage

B) โปรแกรม C++ :ประกาศตัวแปรในเครื่องใหม่โดยไม่มีการเริ่มต้น

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

ผลลัพธ์

error: redeclaration of ‘int var’

ผลลัพธ์ :- ทั้ง C และ C++ ไม่อนุญาตให้มีการประกาศตัวแปรโลคัลซ้ำโดยไม่ได้กำหนดค่าเริ่มต้น ทั้งสองโปรแกรมล้มเหลวในการคอมไพล์

3. A) โปรแกรม C :การประกาศตัวแปรโกลบอลด้วยการเริ่มต้นใหม่

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

ผลลัพธ์

Var = 10

B) โปรแกรม C++ :การประกาศตัวแปรโกลบอลด้วยการเริ่มต้นใหม่

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

ผลลัพธ์

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

ผลลัพธ์ :-C อนุญาตให้มีการประกาศซ้ำของตัวแปร Global หากไม่ได้กำหนดค่าเริ่มต้น โปรแกรม C++ ล้มเหลวในระหว่างการคอมไพล์

4. A) โปรแกรม C :การประกาศตัวแปรโกลบอลด้วยการเริ่มต้นใหม่

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

ผลลัพธ์

error: redeclaration of ‘var’ with no linkage

B) โปรแกรม C++ :การประกาศตัวแปรโลคัลด้วยการเริ่มต้นใหม่

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

ผลลัพธ์

error: redeclaration of ‘int var

ผลลัพธ์ :-ทั้ง C และ C++ ไม่อนุญาตให้มีการประกาศตัวแปรโลคัลซ้ำ แม้ว่าจะไม่ได้กำหนดค่าเริ่มต้นก็ตาม ทั้งสองโปรแกรมล้มเหลวในการรวบรวม