當前位置:首頁 » 編程語言 » c語言變數怎麼用

c語言變數怎麼用

發布時間: 2022-02-21 21:13:06

c語言中變數是干什麼用的

如果你是初學,變數你可以看成一個容器,放數據的。當然容器是在內存里的。不同的容器放不同類型的變數。

計算機怎麼知道你的數據在哪裡,有多長?就是通過變數溝通的,不同的類型長度不一樣,這些長度都是預定義好的,你聲明什麼類型的變數,計算機就知道你的數據有多長了,至於你的數據在哪裡,就是變數名了。

隨著你學習的深入,你會越來越清楚的,知道的答案也越精確^_^

❷ C語言中怎樣申明變數

任何一種編程語言都離不開變數,特別是數據處理型程序,變數的使用非常頻繁,沒有變數參與程序甚至無法編制,即使編制運行後的意義也不大。變數之所以重要,是因為變數是編程語言中數據的符號標識和載體。

C語言是一種應用廣泛的善於實現控制的語言,變數在C語言中的應用更是靈活多變。那麼變數究竟是什麼呢?變數是內存或寄存器中用一個標識符命名的存儲單元,可以用來存儲一個特定類型的數據,並且數據的值在程序運行過程中可以進行修改。可見,變數首先是一個標識符或者名稱,就像一個客房的編號一樣,有了這個編號我們在交流中就可方便言表,否則,我們只可意會,那多不方便。為了方便,我們在給變數命名時,最好能符合大多數人的習慣,基本可以望名知義,便於交流和維護;其次,變數是唯一確定的對應內存若干存儲單元或者某個寄存器。這些是編譯器來保證的,用戶一般不用費心。

程序員一旦定義了變數,那麼,變數就至少可為我們提供兩個信息:一是變數的地址,即就是,操作系統為變數在內存中分配的若干內存的首地址;二是變數的值,也就是,變數在內存中所分配的那些內存單元中所存放的數據。

由於程序的多樣需要,我們對變數也有各種各樣的要求,比如:變數的生命期,變數的初始狀態,變數的有效區域,變數的開闢地和變數的開辟區域的大小等等;為了滿足這些要求,C語言的發明者就設置了以下變數:

1、 不同數據類型的變數;如:char cHar, int iTimes, flaot faverage;

2、 全局變數或者叫全程變數;

3、 局部變數;

4、 靜態變數: 靜態全局變數和靜態局部變數;關鍵詞:static

5、 寄存器變數;關鍵詞:register;

6、 外部變數: 關鍵詞:extern;

C語言中,變數在內存中開闢地的大小由數據類型決定的,由於PC機中規定一個地址單元存一個位元組,不同的數據類型的變數,為其分配的地址單元數是不一樣的。C語言中除幾種基本的數據類型外用戶還可以自己定義所需要的數據類型:

1、 bool型 sizeof(bool): 1

2、 char型: sizeof(char): 1

3、 short型: sizeof(short): 2

4、 int型: sizeof(int): 4

5、 long型: sizeof(long): 4

6、 float型: sizeof(float): 4

7、 double型: sizeof(double): 8

8、 自定義型:如:

typedef struct tagMyData

{

char cHar;

int iTimes;

float faverage;

}MyDatap;

sizeof(MyDatap): 12

char szBuf[]="HELLO C&C++!";

sizeof(szBuf): 13

局部變數和全局變數是相對而言的;如下:局部變數 int itmp;

int Get_Max( const int& x, const int& y, const int& z )

{

int itmp;

if(x > y) itmp = x;

else itmp = y;

if( itmp > z ) return itmp;

else return z;

}

在函數內部說明的變數為局部變數,只有在函數執行時,局部變數才存在,當函數執行完退出後,局部變數隨之消失。也就是,當函數執行完退出後,原先在函數內定義的變數現在不能用,這通常由編譯器保證,它會阻止編譯通過。也就是說,原來為那個局部變數分配的內存,現在已經不屬於它,它再無權訪問了。如要再使用這些內存單元就必須從新定義變數來申請,只有分配給的變數才可訪問它。否則,就會出錯,如數組越界訪問。

與局部變數不同,全局變數在整個程序都是可見的,可在整個程序運行過程中,對於任何一個程序都是可用的。全局變數的說明的位置在所有函數之外,但可被任何一個函數使用,讀取或者寫入。如下:全局變數 int iCount, bool bForward;

int iCount; //全局變數;

bool bForward; //全局變數;

void add( void );

void dec( void );

void man(void )

{

while( iCount < 1000 && iCount > -1000)

{

add( );

dec( );

printf("COUNT:%d;\n", iCount)

}

}

void add( void )

{

if( bForward ) iCount++;

}

void dec( void )

{

if(!bForward ) iCount--;

}

可見,全局變數非常方便不同函數間數據共享,同樣,任何函數在在使用數據時,都不敢保證數據是否已被修改。如果程序員無法保證這個,就盡量避免使用全局變數。

靜態變數是分配在存儲器中C程序所佔據的數據段內, C程序運行的整個過程中一直保留,不會被別的變數佔用。靜態變數可以定義成全局變數或局部變數,當定義為全局變數時,在它定義的程序的整個運行期間均存在並且保持原來的存儲單元位置不會改變。那麼既然有了全局變數為什麼還要定義全局靜態變數呢?看下邊的示例:

❸ C語言中的變數必須先怎麼然後使用

首先變數需要先定義,後使用.
沒有定義就使用變數會報錯.
函數內定義的是局部變數
局部變數在定義時分配內存
在函數執行完時釋放內存
在函數外定義的是全局變數
全局變數在全部文件執行時才釋放內存
當然沒必要一次性把所有要

❹ c語言中間變數有啥用

中間變數可以說是一種媒介或者是橋梁 , 比如交換兩個數的數值 , 或者是兩個數組 ,
比如 ,a=2;b=3;怎樣交換兩個數值且用到中間變數 ,可以這樣 ,int c; c=a;
a = b;
b = c;
就實現了交換 ;如果是數組 , 同理 ;

❺ C語言怎麼給一個變數賦值中文

在 C 語言編程中,關於給某個具體變數賦值中文的問題,根據我的編程經驗,你可以這樣編程不容易出錯,見如下程序代碼:
#include <string.h>
#include <stdio.h>
#define MAX 50 /* 定義一個宏 MAX,該宏定義可以根據需要自行進行修改 */
void main( )
{
unsigned char my_hanzi[MAX] ; /* 在這里必須要注意:由於所需要處理的信息是漢字信息,但是漢字信息的 ASCII 碼的最高位為 1,故在這里必須要將變數定義成無符號字元型數組:unsigned char my_hanzi[MAX] */

gets(my_hanzi) ; /* 輸入一個漢字字元串,但是最大長度不能夠超過 MAX 個字元,否則會出錯 */

puts(my_hanzi) ; /* 輸出剛剛在上面從鍵盤上輸入的漢字字元串 */

strcpy(my_hanzi, "這是一個漢字字元串的應用" ) ; /* 將一個新的漢字字元串復制給變數 my_hanzi */

puts(my_hanzi) ; /* 再輸出剛剛復制的新的漢字字元串 */

}
至於說其它的對漢字信息的各種處理,均可以參考該程序。

❻ c語言中如何向運行的程序輸入變數

???運行的程序??你的意思是scanf么?
比如:
int a=0;
printf("請輸入變數a的值:");
scanf("%d",&a);
printf("a = %d",a);

❼ C語言結構變數怎麼用啊

第22行改成 price[i].p=p;
第31行改成 if(price[t].p==max)
第33行改成 if(price[t].p==min)
第29行改成 for(t=1;t<=n;t++)

❽ c語言中靜態變數是怎麼用的

#include"stdio.h"
void
main()
{
int
f(int);
int
a=2,i;
for(i=0;i<3;i++)
printf("%d
",f(a));
}
int
f(int
a)
{
auto
int
b=0;
//aubo為自動變數的標志,則b為自動變數
static
int
c=3;//static
為靜態局部變數的標志,則c為靜態局部變數
b=b+1;
//b為自動變數,則b一直等於1
c=c+1;
//c為靜態局部變數,則c隨著for循環分別為4,5,6
return(a+b+c);
}
所以運行的結果為:7,8,9
註:靜態局部變數(靜態變數)是在編譯時賦初值的,即值賦初值一次,在程序運行時它已有初值,以後每次調用函數式不在重復賦初值而只在保留商城函數調用結束時的值。

❾ c語言,變數的定義和使用

變數的聲明有兩種情況:
1、一種是需要建立存儲空間的。例如:int a 在聲明的時候就已經建立了存儲空間。
2、另一種是不需要建立存儲空間的。 例如:extern int a 其中變數a是在別的文件中定義的。
前者是「定義性聲明(defining declaration)」或者稱為「定義(definition)」,而後者是「引用性聲明(referncing declaration)」,從廣義的角度來講聲明中包含著定義,即定義是聲明的一個特例,所以並非所有的聲明都是定義,例如:int a 它既是聲明,同時又是定義。然而對於 extern a 來講它只是聲明不是定義。一般的情況下我們常常這樣敘述,把建立空間的聲明稱之為「定義」,而把不需要建立存儲空間的聲明稱之為「聲明」。很明顯我們在這里指的聲明是范圍比較窄的,即狹義上的聲明,也就是說非定義性質的聲明,例如:在主函數中:
int main() {
extern int A;
//這是個聲明而不是定義,聲明A是一個已經定義了的外部變數
//注意:聲明外部變數時可以把變數類型去掉如:extern A;
dosth(); //執行函數
}
int A; //是定義,定義了A為整型的外部變數

外部變數的「定義」與外部變數的「聲明」是不相同的,外部變數的定義只能有一次,它的位置是在所有函數之外,而同一個文件中的外部變數聲明可以是多次的,它可以在函數之內(哪個函數要用就在那個函數中聲明)也可以在函數之外(在外部變數的定義點之前)。系統會根據外部變數的定義(而不是根據外部變數的聲明)分配存儲空間的。對於外部變數來講,初始化只能是在「定義」中進行,而不是在「聲明」中。所謂的「聲明」,其作用,是聲明該變數是一個已在後面定義過的外部變數,僅僅是為了「提前」引用該變數而作的「聲明」而已。extern 只作聲明,不作任何定義。
(我們聲明的最終目的是為了提前使用,即在定義之前使用,如果不需要提前使用就沒有單獨聲明的必要,變數是如此,函數也是如此,所以聲明不會分配存儲空間,只有定義時才會分配存儲空間。)
用static來聲明一個變數的作用有二:
(1)對於局部變數用static聲明,則是為該變數分配的空間在整個程序的執行期內都始終存在。
(2)外部變數用static來聲明,則該變數的作用只限於本文件模塊。

❿ c語言全局變數怎麼用

只要把定義變數的語句放在函數的外面。這樣定義的變數就是全局變數。全局變數有默認的初始值為0, 全局變數對在它起作用范圍內的每一個函數都可以生效。

熱點內容
加密移動硬碟忘記密碼 發布:2025-09-20 12:31:47 瀏覽:517
資料庫約束是什麼 發布:2025-09-20 12:14:07 瀏覽:740
我的世界統一驗證伺服器 發布:2025-09-20 11:51:59 瀏覽:187
dialogandroid 發布:2025-09-20 11:32:18 瀏覽:472
手機軟體用什麼伺服器 發布:2025-09-20 11:26:35 瀏覽:361
搜索php內容 發布:2025-09-20 11:25:05 瀏覽:226
python的quote 發布:2025-09-20 11:07:56 瀏覽:338
vb60連接資料庫 發布:2025-09-20 10:56:18 瀏覽:289
c語言ltoa 發布:2025-09-20 10:51:35 瀏覽:509
mysql的存儲過程參數類型 發布:2025-09-20 10:41:58 瀏覽:819