探究C編程中靜態(tài)和非靜態(tài)的差異
在C編程中,靜態(tài)(static)和非靜態(tài)的概念是我們需要深入理解的。簡單來說,靜態(tài)就是使用了static關鍵字修飾的成員,而非靜態(tài)則相反,沒有使用static修飾。創(chuàng)建C控制臺項目首先打開VS2015
在C編程中,靜態(tài)(static)和非靜態(tài)的概念是我們需要深入理解的。簡單來說,靜態(tài)就是使用了static關鍵字修飾的成員,而非靜態(tài)則相反,沒有使用static修飾。
創(chuàng)建C控制臺項目
首先打開VS2015開發(fā)工具,點擊菜單欄文件 -- 新建 -- 項目,創(chuàng)建一個C語言的控制臺項目。在項目的入口文件Program.cs內(nèi),我們可以新建一個靜態(tài)類和一個非靜態(tài)類。
```csharp
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
}
}
class Person
{
}
static class Vehicle
{
}
}
```
在上述代碼中,Person是一個非靜態(tài)類,而Vehicle是一個靜態(tài)類。
實例化靜態(tài)類和非靜態(tài)類
嘗試在Program.cs文件的Main函數(shù)中實例化上一步定義的靜態(tài)類和非靜態(tài)類。我們會發(fā)現(xiàn),靜態(tài)類是無法被實例化的,這正是靜態(tài)類的特點之一。
靜態(tài)類也無法包含非靜態(tài)的成員變量,因為靜態(tài)類本身不能被實例化,所以也不可能存在對象來使用成員變量。
探索靜態(tài)和非靜態(tài)成員的使用
在非靜態(tài)類Person中定義一個成員變量,并創(chuàng)建一個靜態(tài)函數(shù),試圖在靜態(tài)函數(shù)中使用該成員變量會導致錯誤。這是因為靜態(tài)函數(shù)只能訪問靜態(tài)成員變量,而不能使用普通的成員變量。
如果我們將Person類中的成員變量改為靜態(tài)成員變量,那么就不會再出現(xiàn)錯誤。
靜態(tài)成員的加載特性
在C程序語言中,靜態(tài)成員(如靜態(tài)類、靜態(tài)函數(shù)、靜態(tài)變量)會在非靜態(tài)成員之前加載到內(nèi)存中。因此,靜態(tài)成員通常被設計成工具類,以方便調(diào)用和使用。常見的靜態(tài)類比如Console類,通過按下F12鍵可以查看其內(nèi)容,你會發(fā)現(xiàn)其中包含許多靜態(tài)函數(shù)和靜態(tài)變量。