常量、變數和常變數
答案有兩種,一種是常量,一種是變數。
常量
常量就是在程式執行過程中其值不能改變的量,我們任意說一個數字、一個單詞都是一個常量,例如3就是常量、apple也是常量,常量就相當於數學上常數的概念,只不過計算機的資料型別並不是只有數字,所以稱之為常量。根據資料型別的不同又可分為數值常量、字元常量、字串常量和符號常量。
數值常量可分為整型常量和實型常量。
像1、2、3、100、1000這些是整形常量。1.23、3.14、0.345、5.0這些是實型常量。
字元常量可分為普通字元和轉義字元。
例如'a'、'0'、'!'這些都屬於普通字元常量。
轉義字元是以\開頭的一些特殊字元,它們要麼代表\後面的那個符號要麼行使某一個特殊功能。c語言的轉義字元有:
注:字元常量用單引號' '包起來。例如:'a'、'#'、'\n'。
字串常量是指一串字元,例如"abc"、"china"、"2012"、"[email protected]"等都是字串常量。字串常量用雙引號" "包起來。符號常量是使用一個符號來表示一個常量,需要使用#define指令。
例如:#define PI 3.14,這樣就定義了一個符號常量PI,它表示3.14,且不能更改,下文一旦出現PI就表示3.14。
示例1:
#include <stdio.h> int main() { #define PI 3.14 //定義一個符號常量,其值為3.14 //PI = 6.28; 符號常量不能重新賦值,這句是錯誤的 double d = PI * 2; //將PI的兩倍賦值給變數d printf("%f\n",PI); //輸出d的值,%f是浮點型數字的輸出格式 return 0; }
有兩點需要注意:
1、一旦制定了字元常量PI為3.14其值就確定了。例如示例1的"PI = 6.28;"是不對的。
2、對符號常量賦值不需要等號,語句最後也不需要分號,否則報錯。
變數
變數顧名思義就是在程式執行過程中其值可以改變的量,變數有變數型別、變數名和變數值三個屬性。變數名就是該變數的資料型別,變數名代表儲存該資料的那一塊空間。變數值就是該儲存空間中存放的值。我們通過示例2來做詳細的說明。
示例2:
程式碼解釋:#include <stdio.h> int main() { int a; //定義一個int型別的變數,變數名為a,未賦值。 int b = 6; //定義一個int型別的變數b,並賦值為6 int c = b * 2; //定義一個int型別的變數c,並將b的兩倍賦值給c a = 5; //為變數a賦值為5 printf("a、b、c的值分別為%d、%d、%d\n",a,b,c); //輸出abc的值 return 0; }
這個程式定義了三個int型別的變數a、b、c。int就是這三個變數的變數型別,它們的變數名就是a、b、c。變數名的作用是代表儲存該資料對應的空間。我們知道int型別佔四個位元組,那麼變數名a實際上就代表了用於儲存資料的那四個位元組的空間。存放的內容就是變數的值。a = 5;這個語句就是將5這個資料放在了a這個空間裡。所以變數a的值就是5。
定義變數有三種方式
1、定義和賦值分開寫,就示例2的int a;a=5;
2、定義時同時賦值,如示例2的int b = 6;
3、同時定義多個,例如int a,b,c;當然也可以同時定義並賦值多個。如int a = 5,b = 6,c = b * 2;
示例3:
#include <stdio.h>
int main()
{
int a = 5,b = 6,c = b * 2; //同時定義三個int型別的變數並賦值
printf("a、b、c的值分別為%d、%d、%d\n",a,b,c); //輸出abc的值
return 0;
}
關於變數有2個重要的問題
1:變數必須先賦值後使用。例如示例4中把示例2的a = 5;註釋掉
示例4:
#include <stdio.h>
int main()
{
int a;
int b = 6;
int c = b * 2;
//a = 5; //未對a賦值
printf("a、b、c的值分別為%d、%d、%d\n",a,b,c);
return 0;
}
執行結果:
程式分析:
因為a還沒有賦值就在輸出語句中使用它,結果a的值變得莫名其妙。
2、變數的定義一定要放在程式的最前面。否則程式報錯。例如示例5,把示例2的a = 5;放在定義變數b、c的前面。
示例5:
#include <stdio.h>
int main()
{
int a;
a = 5; //把對a的賦值語句放在定義b、c的上面
int b = 6;
int c = b * 2;
printf("a、b、c的值分別為%d、%d、%d\n",a,b,c);
return 0;
}
常變數
常變數是常量和變數的結合體,和符號常量類似,值都不能改變,但又具備了變數的變數型別、變數名和變數值的屬性。簡單的說常變數就是其值不能改變的變數。
例如:
#include <stdio.h>
int main()
{
#define PI 3.14 //定義符號常量PI,值為3.14
const double pi = 3.14; //定義一個實型常變數,名為pi,值為3.14
double d1 = PI * 2; //定義實型變數,名字為d1,其值為PI的兩倍。
double d2 = pi * 2; //定義實型變數,名字為d2,其值為pi的兩倍。
printf("d1 = %lf\n",d1); //輸出d1的值
printf("d2 = %lf\n",d2); //輸出d2的值
return 0;
}
程式分析:
程式執行結果表示d1和d2的值是一樣的,那麼符號常量和常變數有什麼區別呢?區別是符號常量不分配記憶體空間,#define PI 3.14的作用是把用PI來代表3.14,而常變數是在記憶體劃了一個空間,往裡面放了一個變數。const double pi = 3.14的作用是在記憶體中劃出了一個8位元組大的空間,這個空間在程式執行過程中被命名為pi,裡面存放著一個數據3.14。
變數、常量和常變數並不是能隨意的取名的,它必須遵守變數命名規則。否則程式報錯。另外在命名的基礎上,還要遵守命名規範。不遵守命名規範程式不會報錯,但是建議遵守,因為這是行業內的預設規則。
命名規則
1.只包含字母、數字、下劃線"_"或"@"2.不能以數字開頭和"@"開頭。
3.不能使用c語言本身已經定義的關鍵字。
命名規範
變數名要遵守駝峰式命名法,規則是:單個單詞使用小寫字母,多個單詞第一個單詞首字母小寫,其餘單詞首字母大寫。示例:student、studentName。
常量和常變數的識別符號全體大寫 多單詞加下劃線 示例:PI、APPLE_PRICE。
注:變數名、常量名、常變數名也被稱為識別符號。
相關推薦
常量、變數和常變數
在高階語言中,如何來表示資料的型別呢? 答案有兩種,一種是常量,一種是變數。 常量 常量就是在程式執行過程中其值不能改變的量,我們任意說一個數字、一個單詞都是一個常量,例如3就是常量、apple也是常量,常量就相當於數學上常數的概念,只不過計算機的資料型別並不是只有數字,所
C和C++中經const修飾的常量、常變數和普通變數的區別
1.在C89標準下的const const 修飾的型別是一個常變數,不能作為陣列的下標。常變數不能作為左值。 如: const int a = 10; int b = a; //其編譯的過程和一般變數編譯的過程相同 //並不會把引用符號的地方替換為對應的資
JS中最經典的全域性變數和區域性變數問題(1、作用域和作用域鏈 2、變數宣告提前)
var a = 10; function test(){ a = 100; console.log(a); console.log(this.a); var a; console.log(a); } test(); 1、程式的執行結果為:100
萌新Java的學習筆六:變數與成員變數和區域性變數及常量命名規範-12
Java是一門強型別語言,每個變數都必須宣告其型別。之後才能分配相應長度的儲存單元給它。格式為: type varName [=value][varname[=value]] //type varName屬於宣告,方括號意思為了可以有也可以沒有,也就是說宣告可以
Java學習筆記02--成員變數和區域性變數、建構函式、構造程式碼塊、this關鍵字、static關鍵字、靜態函式
成員變數和區域性變數 自定義的位置區別: 成員變數是定義在方法之外,類之內的變數。 區域性變數是宣告在方法之內的變數。 作用上的區別: 成員變數的作用描述一類事物的屬性。 區域性變數的作用是提供一個變數給方法內部使用的。 生命週期的區別;
linux shell “永久環境變數”、“臨時環境變數”和"普通變數"之完全解讀
這個年代, 大家寫點書, 也無非就是為了搞點錢, 基本都是羅列一些知識點, 基本都是寫給已經會了的人看的。 真正用心寫書的人, 不多。 如果真正用心寫書, 且站在讀者的角度去寫, 那就少之又少了。 關於linux shell環境變數, 我看
理論分佈和抽樣分佈------(一)事件、概率和隨機變數(離散、連續)
抽樣分佈:從間斷性變數總體的理論分佈(二項分佈和泊松分佈)和連續性變數總體的理論分佈中抽出的樣本統計數的分佈,即抽樣分佈。 一、事件和事件發生的概率 事件:在自然界中一種事物,常存在幾種可能出現的情況,每一種可能出現的情況稱為事件 事件的概率:每一件事出現的可能性,稱為
8_物件建立、static 關鍵字、靜態變數和成員變數的區別、文件
一、物件建立 Student s = new Student(); 步驟: (1)載入 Student.class 檔案進記憶體; (2)在棧記憶體中為 s 開闢空間; (3)在堆記憶體為學生物件開闢空間; (4)對學生物件的成員變數進行預設初始化; (5)對學生物件的成員變數進行顯示初始化
python基礎之四種函式型別、函式的巢狀呼叫、函式的區域性變數和全域性變數
函式根據有沒有引數,有沒有返回值,可以相互組合,一共有4種 * 無引數,無返回值 * 無引數,有返回值 * 有引數,無返回值 * 有引數,有返回值 <1>無引數,無返回值的函式此類函式,不能接收引數,也沒有返回值,一般情況下,列印提示燈類似的功能,使用這類的函式 def pr
C++ 類中特殊的成員變數(常變數、引用、靜態)的初始化方法
有些成員變數的資料型別比較特別,它們的初始化方式也和普通資料型別的成員變數有所不同。這些特殊的型別的成員變數包括: a.引用 b.常量 c.靜態 d.靜態常量(整型) e.靜態常量(非整型) 常量和引用,必須通過引數列表進行初始化。 靜態成員變
Dll 模組間(dll, exe)使用匯出變數、靜態變數和外部變數的試驗與結論
DLL檔案(Dynamic Linkable Library 即動態連結庫檔案),是一種不能單獨執行的檔案,它允許程式共享執行特殊任務所必需的程式碼和其他資源 比較大的應用程式都由很多模組組成,這些模組分別完成相對獨立的功能,它們彼此協作來完成整個軟體系統的工作。可能存在一些模組的功能較為通用,在構造其它軟
python基礎:函式名稱空間、作用域、全域性變數和區域性變數
一、名稱空間: Python的名稱空間的本質是一個字典,用來記錄變數名稱和值。字典的key是變數的名稱,字典的value對於的是變數的值。 例如 {‘name’:’zs’,’age’:10} 名稱空間一共分為三種:區域性名稱空間、全域性名稱空間、內建名稱空間 區域性名稱空間: 每個函式都有自
Java三大變數分別是類變數、例項變數和區域性變數
一、什麼是變數:就是內容可以改變的量,它與常量相對應。而這三大變數實際上是從變數的作用域來定義和劃分的。 1、類變數,是歸屬類的變數,它是通過在定義類的屬性的時,增加static修飾符,所以又稱為靜態變數。類變數不僅可以直接通過類名+點操作符+變數名來操作,也
Linux環境變數、使用者變數和shell變數的區別與聯絡
1.shell簡介 shell是指為使用者提供操作介面的軟體,不同作業系統有著不同的shell,同一個作業系統也有著不同的shell。shell分為兩大類:圖形介面shell和命令列式shell。 圖形介面shell:windows作業系統下常用的windows Expl
Android Studio 和 SDK 下載、安裝和環境變數配置
win10下Android Studio和SDK下載、安裝和環境變數配置 ------made by siwuxie095 1、首先必須安裝Java JDK (Java JDK下載、安裝和環境變數配置,傳送陣:點選開始傳送)
例項變數和類變數、類方法和例項方法
類體中包括成員變數和區域性變數,而成員變數又可以細分為例項變數和類變數,在宣告成員變數的時候,用static給予修飾的稱作類變數,否則稱作例項變數。(類變數也稱為static變數,靜態變數) 那麼,類變數和例項變數有什麼區別呢? 我們知道,一個類通過使用ne
常量物件、常量成員函式和常引用
本章內容均為coursera中C++程式設計課件的整理 常量物件 如果不希望某個物件的值被改變,則定義該物件的時候可以在前面加const關鍵字。 class Demo{ private : int
通過Java反射機制獲取物件、方法和成員變數
先定義一個JavaBean package com.jim.test.Test; public class User { private int id; private String name = "abc"; private Str
Java學習:“this”的引用及類變數、例項變數和區域性變數
class caculate { static int staticVar = 0; //類變數、靜態變數 static final float STATIC_CONSTANT = 1; /
Solidity語言學習筆記————7、單位和全域性變數
貨幣單位(Ether Units)wei,finney,szabo或ether可以在Solidity中作為貨幣單位並可以進行相互轉換。沒有單位的數字預設是Wei。單位之間的轉化規則如下:1 ether == 10^3 finney1 ether == 10^6 szabo1