ปัญหา
พูดถึงการประกาศและการเริ่มต้นทางกฎหมายและผิดกฎหมายบางส่วนขณะทำการเขียนโปรแกรม C หรือไม่
ก่อนพูดคุยเรื่องกฎหมายและกฎหมาย เรามาดูวิธีการประกาศและเริ่มต้นตัวแปรใน C.
การประกาศตัวแปร
ต่อไปนี้เป็นรูปแบบการประกาศตัวแปร -
ไวยากรณ์
Datatype v1,v2,… vn;
โดยที่ v1, v2,...vn คือชื่อของตัวแปร
ตัวอย่างเช่น ผลรวม int;
float a,b;
ตัวแปรสามารถประกาศได้สองวิธี -
-
ประกาศท้องถิ่น
-
ประกาศระดับโลก
'การประกาศในเครื่อง' คือการประกาศตัวแปรภายในบล็อกหลัก และค่าของมันจะอยู่ในบล็อกนั้น
'การประกาศทั่วโลก' คือการประกาศตัวแปรนอกบล็อกหลักและค่าของตัวแปรนั้นสามารถใช้ได้ตลอดทั้งโปรแกรม
ตัวอย่างเช่น
int a, b; /* global declaration*/ main ( ){ int c; /* local declaration*/ - - - }
การเริ่มต้นตัวแปร
ต่อไปนี้เป็นไวยากรณ์ของการเริ่มต้นตัวแปร -
ไวยากรณ์
Datatype v1=number;
ตัวอย่างเช่น
int sum=0; float a=1,b=4.5;
ประกาศตัวแปรโดยใช้ชนิดข้อมูล เราสามารถกำหนดค่าเริ่มต้นได้ ณ เวลาที่ประกาศ ดังนั้นในขณะที่เริ่มต้นและประกาศค่า เราจำเป็นต้องปฏิบัติตามกฎ
มาดูตัวอย่างการประกาศและการเริ่มต้นทางกฎหมายและผิดกฎหมายใน C
ตัวอย่าง
-
อักขระ a=65;
เป็นคำชี้แจงทางกฎหมายเพราะเราสามารถเริ่มต้นตัวแปรที่มีค่าคงที่ได้
-
คง int p=20, q=p*p
เป็นคำสั่งที่ผิดกฎหมายเพราะตัวแปรสแตติกต้องเริ่มต้นโดยค่าคงที่ แต่ที่นี่ q ไม่ได้เริ่มต้นด้วยค่าคงที่
-
สองเท่า x=30 *PI
เป็นคำชี้แจงทางกฎหมายเพราะที่นี่เราเริ่มต้นตัวแปรด้วยนิพจน์คงที่
-
เส้นผ่านศูนย์กลางสองเท่า []={1,PI/2, PI, 2*PI/2}
เป็นคำชี้แจงทางกฎหมาย ที่นี่เราเริ่มต้นองค์ประกอบอาร์เรย์ด้วยค่าคงที่
โปรแกรมตัวอย่าง
ด้วยการประกาศทางกฎหมาย &การเริ่มต้น −
#include<stdio.h> void main ( ){ int a,b; a= 10, b = 20; printf (" %d", a<b); printf (" %d", a<=b); printf (" %d", a>b); printf (" %d", a>=b); printf (" %d", a = =b); printf (" %d", a ! =b); }
ผลลัพธ์
1 1 0 0 0 1
ตัวอย่าง
ด้วยการประกาศและการเริ่มต้นที่ผิดกฎหมาย -
#include <stdio.h> int main(){ static int p=20, q=p*p;//illegal initialization printf("%d%d",p,q); return 0; }
ผลลัพธ์
error will be occurred error: initializer element is not constant static int p=20, q=p*p;