靜態函式,靜態(區域性)變數,普通函式,普通變數,普通全域性變數
static
靜態變數,普通變數和全域性變數,靜態區域性變數
靜態變數:程式級別的變數,生命週期是整個程式,在程式結束後釋放
普通變數:作用域為當前函式,當前會話,或者當前檔案,離開後自動釋放
全域性變數:作用於整個工程,自動分配
靜態區域性變數:;靜態區域性變數只在定義的函式內有效,程式只分配一次記憶體,函式返回後,該變數值不會變化。
靜態函式和普通函式
靜態函式:靜態函式只能在本檔案中使用,是檔案的內部函式
普通函式:普通函式則是為整個工程,要實現外部呼叫新增extern即可
儲存位置
全域性變數、靜態全域性變數和靜態區域性變數都存放在記憶體的靜態儲存區域
區域性變數存放在記憶體的棧區
堆和棧特點
棧:由系統自動分配,速度較快。但程式設計師是無法控制的,棧獲得的空間較小. 堆:是由,malloc,new分配的記憶體,一般速度比較慢,而且容易產生記憶體碎片,不過用起來最方便.
相關推薦
C# winform 自定義函式中找不到Form中的控制元件和定義的全域性變數
今天碰到一個比較狗血的問題,想了很多辦法,最後發現,原來如此的坑。 在新建一個form頁面後,我們在程式碼頁面寫程式碼,往往會寫自定義的方法,一般情況下,在自定義的方法中是可以找到form頁面中的控制元件和自定義的全域性變數, 但是如果我們在自定義的方法前面加了static,那麼坑就出來啦,從此這個方法好
靜態函式,靜態(區域性)變數,普通函式,普通變數,普通全域性變數
static 靜態變數,普通變數和全域性變數,靜態區域性變數 靜態變數:程式級別的變數,生命週期是整個程式,在程式結束後釋放 普通變數:作用域為當前函式,當前會話,或者當前檔案,離開後自動釋放 全域性變數:作用於整個工程,自動分配 靜態區域性變數:;靜態區域性變數
靜態(static)全域性變數與全域性變數,靜態區域性變數與區域性變數,內部(static)函式與普通函式
(1)static全域性變數和普通全域性變數的區別 主要是作用域和使用範圍的區別 static/靜態全域性變數作用域有限,侷限在一個原始檔內(定義它的原始檔),不能被同一源程式的其他原始檔使用,避免引起錯誤。(因而同名靜態全域性變數可以被定義在
C++程式執行時記憶體佈局之----------區域性變數,全域性變數,靜態變數,函式程式碼,new出來的變數
宣告兩點: (1)開發測試環境為VS2010+WindowsXP32位; (2)記憶體佈局指的是虛擬記憶體地址,不是實體地址。 1.測試程式碼 #include <iostream> using namespace std; int g_int_a; i
java靜態變數,靜態程式碼塊,普通程式碼塊,建構函式載入順序
前言: java成員變數和構造方法等載入順序是一個很基礎又很容易搞混的東西,今天寫下來算是更明確一些 正文: 廢話不多說上程式碼 public class Father { public Father(){ System.out.print
Python-類變數,成員變數,靜態變數,類方法,靜態方法,例項方法,普通函式
#coding:utf-8 class class_name(object): class_var = 'I am a class variable' #類變數 def __init__(self): self.instance_
一道考察類的純虛擬函式定義,靜態變數等C++題目
程式原題如下: #pragma once class mml { private:static unsigned int x; public:mml(){ x++; }mml(static unsigned int&){ x++; &
C語言那年踩過的坑--區域性變數,靜態變數,全域性變數在記憶體中存放的位置
先看幾個概念: 1、bss是英文block started by symbol的簡稱,通常是指用來存放程式中未初始化的全域性變數的一塊記憶體區域,在程式載入時由核心清0。bss段屬於靜態記憶體分配。它的初始值也是由使用者自己定義的連線定位檔案所確定,使用者應該將它定義在可讀寫的ram區內,源程式中使用m
【python】區域性變數,全部變數,類變數,例項變數,類方法,例項方法,靜態方法的使用
一:區域性變數 函式內部的變數名如果第一次出現,即被視為定義一個區域性變數,不管全域性域中有沒有用到該變數名,函式中使用的將是區域性變數,區域性變數只能在作用域內使用,也就是函式內部使用 二:全域性變數 在模組中使用,其在函式和類的外面定義的定義的變數。如果函式中沒有定於相同變數名的區域
舉例詳解java例項變數,靜態變數,區域性變數
public class Variable { public int m,n;//對子類可見的例項變數 private double k;//只對本類可見的例項變數,一般情況下,設為私有,通過使用訪問修飾符來被子類使用。 public static String P;//靜態變數(
Java非靜態內部類和靜態內部類,訪問父類的非靜態和靜態成員變數及成員函式
public class Test { // Not static variable private int mAge = 10; // Static variable private static int mId = 1; // Single inst
C和C++中全域性變數,區域性變數,靜態變數和常量
最近在Leecode上見到很多關於靜態變數,常量,全域性變數等相關的題,於是結合一些Leecode例題和《C++程式設計思想》整理了這篇部落格,詳細解釋了下它們的區別和用法。 1. 全域性變數 全域性變數是在所有函式體的外部定義的,程式的所有部分(其他檔案的程式碼
靜態變數,靜態區域性變數的生存週期
首先要理解生存週期與作用域的區別: 生存週期: 變數從定義到銷燬的時間範圍。存放在全域性資料區的變數的生存週期存在於整個程式執行期間,而存放在棧中的資料則隨著函式等的作用域結束導致出棧而銷燬,除了靜態變數之外的區域性變數都存放於棧中。 作用域: 變數的可見程式碼域(塊
java成員變數,靜態成員變數,靜態程式碼塊,程式碼塊和建構函式等載入順序
直接上例子 父類: /** * DESC: 父類 <br/> * USER: haiboz <br/> * DATE: 2018/1/29 17:01 <br/> */ public class Parent { pri
026day(全域性,區域性,靜態變數和變數的作用域,生存期)
172210704111-陳國佳總結《2017年11月5日》【連續026天】 標題:全域性,區域性,靜態變數和變數的作用域,生存期; 內容:A.觀看MOOC10.2,10.3; B(a).區域性變數:定義在函式內部的變數(包括函式的形參),全域性變數:
第七節, 靜態成員變數和靜態成員函式
用static修飾的成員變數和成員函式叫做靜態成員變數和靜態成員函式。 下面我們看靜態成員變數和靜態成員函式有什麼不同的地方。 首先看下面一個例子: class Cat { int age; public: static int manyCounts;
c語言中的變數(區域性變數,外部變數,靜態變數,暫存器變數) .
c語言中變數分為四類,分別是 1.auto 自動變數 2.static 靜態存貯分配變數(又分為內部靜態和外部靜態) 3.extern 外部變數/全程變數(用於外部變數說明) 4.register 暫存器變數(分配在硬體暫存器中) 四
普通區域性變數、普通全域性變數、靜態區域性變數、靜態全域性變數、普通函式、靜態函式區別
普通全域性變數與靜態全域性變數 在全域性變數(外部變數)的說明之前再冠以static就構成了靜態的全域性變數。 全域性變數本身就是靜態儲存方式, 靜態全域性變數當然也是靜態儲
C/C++中的靜態全域性變數,靜態區域性變數,全域性變數,區域性變數的區別
static有兩種用法:面向過程程式設計中的static和麵向物件程式設計中的static。前者應用於普通變數和函式,不涉及類;後者主要說明static在類中的作用。 面向過程設計中的static 全域性變數、區域性變數、靜態全域性變數、靜態區域性變數的區別 C++
java中的遞迴——成員變數,區域性變數,靜態變數
在java的遞迴過程中,涉及到三種變數,例項成員變數,區域性變數,靜態變數。成員變數和區域性變數一樣,都會隨著函式遞迴呼叫而進棧,而靜態變數就相當於c語言中的全域性變數,函式在遞迴過程中呼叫的全域性變數始終是同一個。 package com.algorithm.tree;