C語言學習系列(五)變數和常量

來源:互聯網
上載者:User

標籤:stdio.h   logs   表達   width   個數   copy   div   位置   height   

一、常量定義:在程式運行中,其值不能改變的量稱為常量分類:常量可以是任何的基礎資料型別 (Elementary Data Type),比如整數常量、浮點常量、字元常量,或字串字面值,也有枚舉常量。在 C 中,有兩種簡單的定義常量的方式:

使用 #define 前置處理器。

使用 const 關鍵字。

#include <stdio.h>#define WIDTH 20#define    HEIGHT 30int main(){    printf("value of width:%d\n",WIDTH);    printf("value of heigth:%d\n",HEIGHT);        //可以使用 const 首碼聲明指定類型的常量    const int length =40;    printf("value of length:%d\n",length);}
define 和 const 的區別:
  1.  const 定義常量是有資料類型的,而 #define 宏定義常量卻沒有,一是 const 有類型;二是 const 可以有不同的範圍。
  2.  const 常量有資料類型,而宏常量沒有資料類型。編譯器可以對 const 進行型別安全檢查,而對後者只進行字元替換,沒有型別安全檢查,不分配儲存單元,並且在字元替換中可能會產生意料不到的錯誤。
  3.  有些整合化的調試工具可以對 const 常量進行調試,但是不能對宏常量進行調試。
二、變數變數代表一個有名字的、具有特定屬性的一個儲存單元。它用來存放資料,也就是存放變數的值。變數在程式運行中是可變的。變數必須先定義,後使用。變數定義:變數定義就是告訴編譯器在何處建立變數的儲存,以及如何建立變數的儲存。變數定義指定一個資料類型,並包含了該類型的一個或多個變數的列表。
  1. 帶初始化的定義:在聲明的時候指定一個值。初始化有一個等號,後跟一個常量運算式組成。
  2. 不帶初始化的定義:帶有靜態儲存期間的變數會被隱式的初始化為 NULL  (所有位元組的值都是0),其他所有變數的初始值是未定義的。
變數聲明:變數聲明向編譯器保證變數以指定的類型和名稱存在,這樣編譯器在不需要知道變數完整細節的情況下也能繼續進一步的編譯。變數聲明只在編譯時間有它的意義,在程式串連時編譯器需要實際的變數聲明。
  1. 一種是需要建立儲存空間的。例如:int a 在聲明的時候就已經建立了儲存空間。
  2. 另一種是不需要建立儲存空間的,通過使用extern關鍵字聲明變數名而不定義它。 例如:extern int a 其中變數 a 可以在別的檔案中定義的。
  3. 除非有extern關鍵字,否則都是變數的定義。
#include <stdio.h> // 變數聲明extern int a, b;extern int c;extern float f; int main (){  /* 變數定義 */  int a, b;  int c;  float f;   /* 初始化 */  a = 10;  b = 20;    c = a + b;  printf("value of c : %d \n", c);   f = 70.0/3.0;  printf("value of f : %f \n", f);   return 0;}
三、C中的左值(Lvalues)和右值(Rvalues)C中有兩種類型的運算式:
  1. 左值(lvalue):指向記憶體位置的運算式被稱為左值(lvalue)運算式。左值可以出現在賦值號的左邊或右邊。
  2. 右值(rvalue):術語右值(rvalue)指的是儲存在記憶體中某些地址的數值。右值是不能對其進行賦值的運算式,也就是說,右值可以出現在賦值號的右邊,但不能出現在賦值號的左邊。
變數是左值,因此可以出現在賦值號的左邊。數值型的字面值是右值,因此不能被賦值,不能出現在賦值號的左邊。 
        if ( U.read(me.Blog) ) $("#推薦").click();        if ( U.copy(me.Blog) ) $("#u Blog").console("原文連結:http://www.cnblogs.com/Grand-Jon/p/7449700.html ");        else me.Fuck(U);

C語言學習系列(五)變數和常量

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.