ソフトウェアベース
10305 ワード
13強。コンピュータが変数を処理する方法
どのようにC言語の中で各種の変数を処理します
ゾーン変数、グローバル変数、レジスタ変数
特定の関数に値またはアドレスを渡す方法について
コンピュータ・オペレーティング・システムは、メモリ・スペースを4つに分類して管理します.
13-1.グローバル変数
プログラム内の任意の場所でアクセスできる変数
main関数は、実行前にプログラムが起動しながらメモリに割り当てられます.
プログラムのサイズが大きいほど、グローバル変数はプログラムを複雑にします.
メモリのデータ領域にロードします.#include <stdio.h>
int a=5;
void changeValue(){
a = 10;
}
int main(void) {
// your code goes here
printf("%d\n",a);
changeValue();
printf("%d\n",a);
system("pause")
return 0;
}
13-2. ゾーン変数
プログラム内で特定のブレードのみでアクセスできる変数
関数は実行するたびにメモリに割り当てられ、関数の終了時にメモリから解放されます.
メモリのスタック領域に書き込みます.
13-3. せいてきへんすう
特定のネットワーク線でしか近づけない変数.
プログラム実行時にメモリに割り当てられ、プログラム終了時にメモリから解放されます.
メモリのデータ(データ)領域にロードします.#include <stdio.h>
void process(){
static int a = 5;
a=a+1;
printf("%d\n",a);
}
int main(void){
process();
process();
process();
system("pause");
return 0;
}
13-4.レジスタ変数
メインメモリの変数ではなくCPUのレジスタを使う(急げ!)
レジスタは非常に限られており、本物のレジスタで処理される保証はありません.
処理速度が通常より速くなることが予想されます!#include <stdio.h>
int main(void){
register int a= 10, i;
for(i=0; i<a; i++){
printf("%d",i)'
}
system("pause");
return 0;
13-5.関数値伝達方式
-値で渡す
-参照による転送(ポインタ値による元の変数値の転送/アクセス);
14.多次元配列とポインタ配列
ポインタを使用した2 D配列複写
14-1ポインタアレイ
配列はポインタと同じです.
配列の名前は、配列内の要素の最初のアドレスになります.
ポインタは変数(変更可能)、配列の名前は定数です.(変えられない.)#include <stdio.h>
int main(void){
int a[5] = {1,2,3,4,5};
int *b = a;
printf("%d\n",b[2]);
system("pause")'
return 0;
}
ポインタは配列を参照できます.
参照定数を配列することは不可能です.
#include <stdio.h>
int a=5;
void changeValue(){
a = 10;
}
int main(void) {
// your code goes here
printf("%d\n",a);
changeValue();
printf("%d\n",a);
system("pause")
return 0;
}
#include <stdio.h>
void process(){
static int a = 5;
a=a+1;
printf("%d\n",a);
}
int main(void){
process();
process();
process();
system("pause");
return 0;
}
#include <stdio.h>
int main(void){
register int a= 10, i;
for(i=0; i<a; i++){
printf("%d",i)'
}
system("pause");
return 0;
ポインタを使用した2 D配列複写
14-1ポインタアレイ
配列はポインタと同じです.
配列の名前は、配列内の要素の最初のアドレスになります.
ポインタは変数(変更可能)、配列の名前は定数です.(変えられない.)
#include <stdio.h>
int main(void){
int a[5] = {1,2,3,4,5};
int *b = a;
printf("%d\n",b[2]);
system("pause")'
return 0;
}
ポインタは配列を参照できます.参照定数を配列することは不可能です.
#include <stdio.h>
int main(void){
int a = 10;
int b[10];
b = &a;
system("pause");
return 0;
}
Reference
この問題について(ソフトウェアベース), 我々は、より多くの情報をここで見つけました https://velog.io/@nara7875/소프트웨어-베이직テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol