ปัญหา
พูดถึงการประกาศและการเริ่มต้นทางกฎหมายและผิดกฎหมายบางส่วนขณะทำการเขียนโปรแกรม 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;