[英]Assigning structure variable a value
當我以這種方式為 s.rollno 賦值時它不起作用
#include<stdio.h>
struct student{
int rollno;
int marks;
}s ;
s.rollno = 2;
int main(){
printf("%d",s.rollno);
}
但是,如果我在 main 中為 s.rollno 賦值,它會起作用
#include<stdio.h>
struct student{
int rollno;
int marks;
}s ;
int main(){
s.rollno = 2;
printf("%d",s.rollno);
}
你不能寫
s.rollno = 2;
在全球范圍內,作為單獨的聲明。 所有的語句都需要出現在一些可以執行它們的函數中。
但是,您可以在定義時初始化該值,例如
struct student {
int rollno;
int marks;
} s = {.rollno = 2};
您可以在函數作用域之外創建一個全局變量,如下所示:
int a;
int main() {
a = 5;
}
但是你不能像你那樣設置它。 這是因為運行時和編譯時間之間的差異。 全局變量被創建並設置到內存中,這是在編譯時確定的。 但是像上面a=5
這樣a=5
代碼是在運行時執行的。 想象一下這種情況:
int a;
a = somestruct.somefunction();
如果沒有運行它的函數,我們如何確定 a 是什么? 在函數范圍之外完成的事情不能在運行時發生。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.