######使える。 C言語の関数内に記述された変数はローカル変数であり、関数内でのみ動作し、他の関数には影響を与えません。異なる関数で同じ変数名を使用しても、それらが同じ変数であるとは限りません。
このチュートリアルの動作環境: Windows7 システム、C99 バージョン、Dell G3 コンピューター。
#チュートリアルの推奨事項: 「c 言語チュートリアル ビデオ
」 #関数内で定義された変数は、その有効範囲が関数内に限定され、関数外では使用できないため、このような変数をローカル変数(Local Variable)と呼びます。関数の仮パラメータもローカル変数であり、関数内でのみ使用できます。 int f1(int a){
int b,c; //a,b,c仅在函数f1()内有效
return a+b+c;
}
int main(){
int m,n; //m,n仅在函数main()内有效
return 0;
}
いくつかの注意:
1) main 関数で定義された変数はローカル変数でもあり、main 関数でのみ使用できます; 同時に、他の関数で定義された変数も使用できますmain関数では使用できません。 main 関数も関数であり、他の関数と同等のステータスを持ちます。
2) 仮パラメータ変数と関数本体で定義された変数はすべてローカル変数です。実パラメータから仮パラメータに値を転送するプロセスは、ローカル変数に値を割り当てるプロセスでもあります。
3) 異なる関数で同じ変数名を使用することができ、相互に干渉したり混乱を引き起こすことなく、異なるデータを表し、異なるメモリを割り当てます。
4) 変数はステートメント ブロック内でも定義でき、そのスコープは現在のステートメント ブロックに限定されます。
変数の名前付けについて実行可能な C 言語コードには、最も単純な C 言語コードであっても、複数のスコープが含まれています。 int main(){
return 0;
}
これは最も単純な実行可能な C 言語コードです。これには 2 つのスコープが含まれており、1 つは main() 関数内のローカル スコープであり、もう 1 つは main() 関数の外側のグローバル スコープです。
C 言語では、同じ名前の 2 つの変数を同じスコープ内に出現させることはできないと規定されており、そうしないと名前の競合が発生します。ただし、同じ名前の変数は異なるスコープ内に出現することが許可されており、それらのスコープは異なります。そして互いに衝突しません。この文には 2 つの意味があります:
同じ名前の変数は異なる関数内に出現でき、異なる関数は異なるローカル スコープを持ちます;
変数同じ名前の関数は関数の内側と外側に出現できます。ローカル スコープは関数の内側にあり、グローバル スコープは関数の外側にあります。
-
1) 異なる関数内の同じ名前の変数は完全に独立した 2 つの変数であり、相互に相関や影響はありません。
#include <stdio.h> void func_a(){ int n = 100; printf("func_a: n = %d\n", n); n = 86; printf("func_a: n = %d\n", n); } void func_b(){ int n = 29; printf("func_b: n = %d\n", n); func_a(); //调用func_a() printf("func_b: n = %d\n", n); } int main(){ func_b(); return 0; }
実行結果:
func_b: n = 29 func_a: n = 100 func_a: n = 86 func_b: n = 29
func_a() と func_b() はどちらも内部的に変数 n を定義します。 func_b() では、 n の初期値は 29 です。 func_a() を呼び出した後、 n の値は依然として 29 です。これは、func_b() 内の n が func_a() 内の n に影響を与えないことを示しています。この 2 つの N はまったく異なる変数です。お互いをまったく「知りません」。名前が同じであるだけです。芸能人が服を合わせているようなものです。北京と雲南には李紅という名前の人がいます。それは単なる偶然です。
2) 関数内のローカル変数が関数外のグローバル変数と同じ名前を持つ場合、グローバル変数は現在の関数のローカル スコープで「シールド」され、何の効果もなくなります。 。つまり、関数内ではグローバル変数ではなくローカル変数が使用されます。
変数の使用は近接性の原則に従います。同じ名前の変数が現在のローカル スコープで見つかった場合、その変数はより大きなグローバル スコープでは検索されません。さらに、小さいスコープから大きいスコープまでの変数のみを検索できますが、小さいスコープの変数を使用してその逆はできません。
具体的な例を使用して説明します。
#include <stdio.h> int n = 10; //全局变量 void func1(){ int n = 20; //局部变量 printf("func1 n: %d\n", n); } void func2(int n){ printf("func2 n: %d\n", n); } void func3(){ printf("func3 n: %d\n", n); } int main(){ int n = 30; //局部变量 func1(); func2(n); func3(); printf("main n: %d\n", n); return 0; }
実行結果:
func1 n: 20 func2 n: 30 func3 n: 10 main n: 30
コード内では同じ名前の複数の変数 n が定義されていますが、それらのスコープは異なります。 , そのため、名前の競合は発生しません。
以下は出力結果の分析です。
func1() の場合、出力結果は 20 です。明らかに、func1() の内部 n が外部 n の代わりに使用されます。
func2() を呼び出すと、main() の実パラメータ n が func2() の仮パラメータ n に渡され、このとき仮パラメータ n の値は 30 になります。仮パラメータ n もローカル変数なので、それが使用されます。
func3() は、グローバル変数を使用して 10 を出力します。func3() にはローカル変数 n がないため、コンパイラは関数の外、つまりグローバル スコープ内でのみ変数 n を探すことができます。
main() の printf() ステートメントは 30 を出力します。これは、main() の n が外部 n の代わりに使用されていることを示します。
プログラミング関連の知識について詳しくは、
プログラミング教育をご覧ください。 !
以上が同じ名前の変数を異なる関数で使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

C#は、エンタープライズレベルのアプリケーション、ゲーム開発、モバイルアプリケーション、Web開発で広く使用されています。 1)エンタープライズレベルのアプリケーションでは、C#がasp.netcoreにWebAPIを開発するためによく使用されます。 2)ゲーム開発では、C#がUnityエンジンと組み合わされて、ロールコントロールやその他の機能を実現します。 3)C#は、コードの柔軟性とアプリケーションのパフォーマンスを改善するために、多型と非同期プログラミングをサポートします。

C#と.NETは、Web、デスクトップ、モバイル開発に適しています。 1)Web開発では、ASP.Netcoreがクロスプラットフォーム開発をサポートしています。 2)デスクトップ開発では、さまざまなニーズに適したWPFとWINFORMSを使用します。 3)モバイル開発は、Xamarinを介したクロスプラットフォームアプリケーションを実現します。

C#.NETエコシステムは、開発者がアプリケーションを効率的に構築できるようにするための豊富なフレームワークとライブラリを提供します。 1.ASP.NETCOREは、高性能Webアプリケーションの構築に使用されます。2.EntityFrameWorkCoreは、データベース操作に使用されます。これらのツールの使用とベストプラクティスを理解することにより、開発者はアプリケーションの品質とパフォーマンスを向上させることができます。

c#.netアプリをAzureまたはAWSに展開する方法は?答えは、AzureAppServiceとAwselasticBeanStalkを使用することです。 1。Azureでは、AzureAppServiceとAzurePipelinesを使用して展開を自動化します。 2。AWSでは、Amazon ElasticBeanstalkとAwslambdaを使用して、展開とサーバーレス計算を実装します。

C#と.NETの組み合わせにより、開発者に強力なプログラミング環境を提供します。 1)C#は、多型と非同期プログラミングをサポートします。2).NETは、クロスプラットフォーム機能と同時処理メカニズムを提供し、デスクトップ、Web、モバイルアプリケーション開発で広く使用されています。

.NetFrameworkはソフトウェアフレームワークであり、C#はプログラミング言語です。 1..netframeworkは、デスクトップ、Web、モバイルアプリケーションの開発をサポートするライブラリとサービスを提供します。 2.C#は.NetFrameWork用に設計されており、最新のプログラミング機能をサポートしています。 3..NetFrameworkはCLRを介してコード実行を管理し、C#コードはILにコンパイルされ、CLRによって実行されます。 4. .NetFrameWorkを使用してアプリケーションをすばやく開発し、C#はLINQなどの高度な関数を提供します。 5.一般的なエラーには、タイプ変換と非同期プログラミングデッドロックが含まれます。 VisualStudioツールは、デバッグに必要です。

C#は、Microsoftが開発した最新のオブジェクト指向プログラミング言語であり、.NETはMicrosoftが提供する開発フレームワークです。 C#は、CのパフォーマンスとJavaのシンプルさを組み合わせており、さまざまなアプリケーションの構築に適しています。 .NETフレームワークは、複数の言語をサポートし、ガベージコレクションメカニズムを提供し、メモリ管理を簡素化します。

C#と.NETランタイムは密接に連携して、開発者に効率的で強力なプラットフォームの開発機能に力を与えます。 1)C#は、.NETフレームワークとシームレスに統合するように設計されたタイプセーフおよびオブジェクト指向のプログラミング言語です。 2).NETランタイムは、C#コードの実行を管理し、ガベージコレクション、タイプの安全性、その他のサービスを提供し、効率的でクロスプラットフォームの操作を保証します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ホットトピック









