![](/img/trans.png)
[英]Why is it possible to store the information content of an int pointer to an int variable in c?
[英]C - int is a variable so why not use a variable instead of an int?
我剛在想。 如果這是一個變量:
int variable;
variable = 12;
你不能這樣做嗎?:
variable = 12;
//Instead of putting int variable before this?
我是 C 的新手並且正在學習它,只是想了解更多。
與字符相同的事情。
為什么我的問題被否決了? 我在問問題,你們都在幫助......
你不能這樣做嗎?:
變量 = 12; //而不是在此之前放置int變量?
不,你不能這樣做,因為你必須先聲明它的類型。 這個
int variable;
定義一個可以保存int
的變量。 如果您分配string
、“asdsa2”或float
34.5,您將收到編譯錯誤。 因為我們只能將 int 類型的variable
分配給variable
。
所以 char 將變量定義為字符串,而 int 將其定義為整數。
如果你寫:
char firstLetter;
定義了一個char
類型的變量。 這意味着變量firstLetter
可以保存一個字符。
這是firstLetter='c';
有效的。 而這個firstLetter="21";
是錯的。
我現在明白了,但你不能這樣做嗎? int 變量 = 12; 或 char 變量 = "string";
你當然知道。 這實際上是我們為變量賦值的常用方式,如下所示
從左到右遵循 1 到 5。
C 是靜態類型的,這意味着每個變量都有一個需要指定的類型。 您可以通過將類型名稱放在聲明中來指定它。 您可以在其聲明中初始化變量,而不是稍后分配它:
int variable = 12;
但你不能完全省略聲明。 您的第二個代碼段是對已聲明的變量的賦值,如果尚未聲明,則會給出錯誤。 編譯器需要聲明來告訴它類型,以便它知道如何分配給它。
您最初用 C++ 標記了問題; 該語言允許從初始化程序中推導出類型,以節省您編寫冗余。 但是在這種情況下您仍然需要聲明,以表明您打算引入一個新變量,而不僅僅是錯誤輸入現有變量的名稱:
auto variable = 12; // "auto" is deduced as "int" to match 12
但是C沒有這個。
好吧,讓我告訴你。 每當你想在“C”中使用一個變量時,你就必須定義它。 這里,“int 變量”表示該變量將保存一個整數值。 “char”和“float”的情況類似。 這是在“C”中定義變量的規則。 如果您只寫“variable=12”,那么編譯器將無法理解它將保存哪種類型的值。 是的,您必須首先提供變量的類型,以便編譯器了解變量的數據類型並進行相應的編譯。
在某些語言(如 Python)中,您不必聲明數據類型。 當你寫類似的東西時
int variable;
你在“聲明”它。 當你寫
variable = 1;
您正在“初始化”它。 所有變量都必須首先在 C 中聲明,因為它是一種關注內存和數據類型的低級語言。
在 C 中,您必須指定變量的類型。
int 變量 = 12;
int是類型。
variable是變量的名稱。
12是您將其初始化為的值。
什么是類型,為什么我們需要它? 類型本質上是一種告訴系統您希望將多少內存附加到變量的方法。
通常在 32 位機器上你有:
int 是 4 個字節,char 是 1 個字節。
如果你沒有聲明類型,你會給所有的東西 4 個字節是浪費,而它可能只需要 1 個。
類型也可以幫助程序員確定變量必須具有什么,例如 char * 通常是一個字符串,一個 int 是一個整數,一個浮點數是一個浮動小數點數。 擁有類型有很多用途,並且有一些語言可以抽象類型,例如 python(嗯,原始類型)。
都在一行中:
int variable = 12;
int 是類型的名稱,variable 是該類型的變量的名稱
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.