C語言學習筆記----------伊能C語言學習筆記-------靜態區域性變數
用static宣告一個變數的作用是:
1.對區域性變數用static宣告,把它分配在靜態儲存區,該變數在整個程式執行期間不釋放,其所分配的空間始終存在。常使用靜態區域性變數在函式呼叫間歇儲存某些變數的值。
2.對全域性變數用static宣告,則該變數的作用域只限於本檔案模組(即被宣告的檔案中)
*/
#include<stdio.h>
#include<stdlib.h>
void go()
{
for (int i = 0; i < 10; i++)
{
int num = 0; //區域性變數,每次塊語句結束,就自動回收,然後重新分配
//每次的值都為0
static int data = 0; //靜態區域性變數,,始終在記憶體,一旦定義初始化,即使再次執行初始化的語句,也僅僅只執行一次初始化。
// 生命週期一直沾著記憶體,與程式共存亡。
printf("%p,%p\n", &num, &data); //輸出地址
num += i; //num=num +i;
data = data + i;
printf("\n");
}
//下面我們就來看一下,num和data的生命週期有什麼特點呢?
}
void main()
{
go();
system("pause");
}
相關推薦
C語言學習筆記----------伊能C語言學習筆記-------靜態區域性變數
/*用static宣告一個變數的作用是:1.對區域性變數用static宣告,把它分配在靜態儲存區,該變數在整個程式執行期間不釋放,其所分配的空間始終存在。常使用靜態區域性變數在函式呼叫間歇儲存某些變數的值。2.對全域性變數用static宣告,則該變數的作用域只限於本檔案模組
C語言學習筆記----伊能C語言學習筆記----如何在一個檔案中使用另一個檔案中定義的變數呢??
我們知道,一個大的程式,會由多個c檔案構成,這些c檔案是屬於同一個程式的。 那麼,如何在一個檔案中使用另一個檔案中定義的變數呢?? 解答: C語言為了解決這個問題:引出了 全域性作用域的概念 即: 在一個檔案中定義的全域性變數,具有全域性
C語言中全域性變數、區域性變數、靜態全域性變數、靜態區域性變數的區別
1.C++變數根據定義的位置的不同的生命週期,具有不同的作用域,作用域可分為6種: 全域性作用域,區域性作用域,語句作用域,類作用域,名稱空間作用域和檔案作用域。 從作用域看: 1>全域性變數具有全域性作用域。全域性變數只需在一個原始檔中定義,就可以作用於所有的原始檔
c語言中靜態全域性變數、靜態區域性變數、全域性變數、區域性變數、巨集
全域性變數: 全域性變數具有全域性作用域。,它只編譯期被始化一次,它不能用變數來初始化。全域性變數只需要在一個原始檔中定義,就可以作用於所有的原始檔。在其他不包含全域性變數定義的原始檔中需要用extern關鍵詞來再次宣告這個全域性變數 區域性變數: 區域性變數只有區域性
C++筆記 第二十五課 類的靜態成員變數---狄泰學院
如果在閱讀過程中發現有錯誤,望評論指正,希望大家一起學習,一起進步。 學習C++編譯環境:Linux 第二十五課 類的靜態成員變數 1.成員變數的回顧 通過物件名能夠訪問public成員變數 每個物件的成員變數都是專屬的 成員變數不能在物件之間共享 2.新的需求 統計
C++ 類的成員函式中的靜態區域性變數
class A { public: A(){} ~A(){} int GetStaticNum(); }; int A::GetStaticNum() { static int i = 0;//靜態區域性變數屬於該方法,與類的例項無關 i++; return i; } int
C/C++中的靜態全域性變數,靜態區域性變數,全域性變數,區域性變數的區別
static有兩種用法:面向過程程式設計中的static和麵向物件程式設計中的static。前者應用於普通變數和函式,不涉及類;後者主要說明static在類中的作用。 面向過程設計中的static 全域性變數、區域性變數、靜態全域性變數、靜態區域性變數的區別 C++
C|C++中的靜態全域性變數,靜態區域性變數,全域性變數,區域性變數的區別
static有兩種用法:面向過程程式設計中的static和麵向物件程式設計中的static。前者應用於普通變數和函式,不涉及類;後者主要說明static在類中的作用。 一、面向過程設計中的static 全域性變數、區域性變數、靜態全域性變數、靜態區域性變數的區別 C++變數根據定義的位置的不同的生命週期,具有
MySQL-儲存過程程式碼筆記-in、out、inout、declare區域性變數和if...else語句
mysql> use test; Database changed mysql> show tables; Empty set (0.00 sec) mysql> use test; Database changed mysql> create table testA
sqlite學習筆記7:C語言中使用sqlite之打開數據庫
實例 clas details code 返回 pri san filename stdlib.h 數據庫的基本內容前面都已經說得差點兒相同了。接下看看如何在C語言中使用sqlite。 一 接口 sqlite3_open(const char *filename, s
sqlite學習筆記11:C語言中使用sqlite之刪除記錄
false done mta ase rom real not null -a ubun 最後一節,這裏記錄下怎樣刪除數據。 前面全部的代碼都繼承在這裏了,在Ubuntu14.04和Mac10.9上親測通過。 #include <stdio.h> #in
sqlite學習筆記9:C語言中使用sqlite之插入數據
name article void num mes cut cpp content int 前面創建了一張表,如今給他插入一些數據。插入數據跟創建表差點兒相同,不過SQL語言不一樣而已,完整代碼例如以下: #include <stdio.h> #inclu
快速傅立葉變換FFT的學習筆記一:C語言程式碼的簡單實現
快速傅立葉變換FFT的學習筆記一:C語言程式碼的簡單實現 fft.c #include "math.h" #include "fft.h" void conjugate_complex(int n,complex in[],complex out[]) { int i = 0
《C語言程式設計:現代方法(第2版)(K.N.King 著)》學習筆記一:C語言概述
1.1 C語言的歷史 1.1.1 起源 C語言是美國貝爾實驗室的 Dennis Ritchie、Ken Thompson 等人為開發 UNIX 作業系統而於 1972 年設計的一種計算機程式語言。
《C語言程式設計:現代方法(第2版)(K.N.King 著)》學習筆記三:C語言基本概念(2)
2.3 註釋 每一個程式都應該包含識別資訊,即程式名、編寫日期、作者、程式的用途以及其他相關資訊。C語言把這類資訊放在註釋(comment)中。 符號 /* 標記註釋的開始,而符號 */ 則標記註釋
《C語言程式設計:現代方法(第2版)(K.N.King 著)》學習筆記四:C語言基本概念(3)
2.5 讀入輸入 為了獲取輸入,就要用到 scanf 函式。它是C函式庫中與 printf 相對應的函式。scanf 中的字母 f 和 printf 中的字母 f 含義相同,都是表示“格式化”的意思
《C語言程式設計:現代方法(第2版)(K.N.King 著)》學習筆記五:C語言基本概念(4)
2.7 識別符號 在編寫程式時,需要對變數、函式、巨集和其他實體進行命名。這些名字稱為識別符號(identifier)。在C語言中,識別符號可以含有字母、數字和下劃線,但是必須以字母或者下劃線開頭。
《C語言程式設計:現代方法(第2版)(K.N.King 著)》學習筆記六:C語言基本概念(5)
問與答 GCC 最初是 GNU C Compiler 的簡稱。現在指 GNU Compiler Collection,這是因為最新版本的 GCC 能夠編譯用 Ada、C、C++、Fortran、Ja
C語言中的輸入輸出函式(學習筆記)
文章目錄 c語言中的基本輸入與輸出函式 1.格式化輸入輸出函式 1.1printf()函式 1.2scanf()函式 2.非格式化的輸入輸出函式 2.1puts()和gets()函式
學習筆記:對C語言指標的理解
在C語言中,有很多極易混淆的概念(比如:記憶體和指標、函式指標、指標函式、陣列指標、指標陣列),也正是這些概念使得很多人學習起來很累,今天,筆者分享一下自己對這些的概念的理解。 一、定義 1、記憶體:隨機存取儲存器,也叫主存,是與CPU直接交換資料的內部儲存器。 2、指