什么是变量的作用域
变量的作用域是指变量有效性的范围,就是用户自定义的变量可以使用的代码范围;它与变量定义的位置密切相关。
作用域
是从空间这个角度来描述变量的,按照作用域的不同,变量可分为局部变量和全局变量。
1、局部变量
局部变量是在函数(或代码块)内部定义的变量,也称为内部变量,局部变量只能在定义它的函数(或代码块)内被访问和使用,其他函数均不能使用。
局部变量的作用域,限于说明它的代码块内:从说明的地方开始至所在的代码块结束, 离开该函数后再使用这种变量是非法的。
例:
int f1(int a) { int b,c; …… }a,b,c作用域 int f2(int x) { int y,z; }x,y,z作用域 main() { int m,n; }
说明:a为形参,b,c为一般变量;在 f1的范围内a,b,c有效,或者说a,b,c变量的作用域限于f1内。同理,x,y,z的作用域限于f2内; m,n的作用域限于main函数内。
注意,在同一个作用域内,不允许有同名的变量。
2、全局变量
全局变量是在全局环境下声明的变量,它的作用域是从定义点开始直到程序文件结束;它在程序的整个运行过程中,都占用存储单元。
全局变量在一个函数中改变了全局变量的值,其他函数可以共享;它相当于起到在函数间传递数据的作用。
例:
int a,b; void f1() { …… } float x,y; int fz() { …… } main() { …… }
说明:a、b、x、y 都是在函数外部定义的外部变量,都是全局变量。但x,y 定义在函数f1之后,而在f1内又无对x,y的说明,所以它们在f1内无效。 a,b定义在源程序最前面,因此在f1,f2及main内不加说明也可使用。
代码示例:
输入正方体的长宽高l,w,h。求体积及三个面x*y,x*z,y*z的面积。
#include <stdio.h> int s1,s2,s3;//全局变量 int vs( int a,int b,int c) { int v;//局部变量 v=a*b*c; s1=a*b; s2=b*c; s3=a*c; return v; } main() { int v,l,w,h;//局部变量 printf("\n分别输入长度l、宽度w和高度h:\n"); scanf("%d%d%d",&l,&w,&h); v=vs(l,w,h); printf("面积1为:%d,面积2为:%d,面积3为:%d\n",s1,s2,s3); printf("体积为:%d",v); }
输出:
Atas ialah kandungan terperinci 什么是变量的作用域. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











typedef struct digunakan dalam bahasa C untuk mencipta alias jenis struktur untuk memudahkan penggunaan struktur. Ia alias jenis data baharu kepada struktur sedia ada dengan menentukan alias struktur. Faedah termasuk kebolehbacaan yang dipertingkatkan, penggunaan semula kod dan pemeriksaan jenis. Nota: Struktur mesti ditakrifkan sebelum menggunakan alias itu mestilah unik dalam program dan hanya sah dalam skop di mana ia diisytiharkan.

Pengecualian nilai jangkaan pembolehubah dalam Java boleh diselesaikan dengan: memulakan pembolehubah menggunakan nilai nol menggunakan semakan dan tugasan;

Kelebihan penutupan JavaScript termasuk mengekalkan skop pembolehubah, membolehkan kod modular, pelaksanaan tertunda, dan keburukan pengendalian peristiwa termasuk kebocoran memori, peningkatan kerumitan, overhed prestasi dan kesan rantaian skop.

Arahan prapemproses #include dalam C++ memasukkan kandungan fail sumber luaran ke dalam fail sumber semasa, menyalin kandungannya ke lokasi yang sepadan dalam fail sumber semasa. Digunakan terutamanya untuk memasukkan fail pengepala yang mengandungi pengisytiharan yang diperlukan dalam kod, seperti #include <iostream> untuk memasukkan fungsi input/output standard.

Kitaran hayat penunjuk pintar C++: Penciptaan: Penunjuk pintar dicipta apabila memori diperuntukkan. Pemindahan pemilikan: Pindahkan pemilikan melalui operasi pemindahan. Keluaran: Memori dikeluarkan apabila penunjuk pintar keluar dari skop atau dikeluarkan secara eksplisit. Pemusnahan objek: Apabila objek runcing dimusnahkan, penunjuk pintar menjadi penunjuk tidak sah.

boleh. C++ membenarkan definisi dan panggilan fungsi bersarang. Fungsi luaran boleh menentukan fungsi terbina dalam, dan fungsi dalaman boleh dipanggil terus dalam skop. Fungsi bersarang meningkatkan enkapsulasi, kebolehgunaan semula dan kawalan skop. Walau bagaimanapun, fungsi dalaman tidak boleh mengakses pembolehubah tempatan fungsi luaran secara langsung, dan jenis nilai pulangan mesti konsisten dengan pengisytiharan fungsi luaran Fungsi dalaman tidak boleh rekursif sendiri.

Dalam Vue, terdapat perbezaan dalam skop apabila mengisytiharkan pembolehubah antara let dan var: Skop: var mempunyai skop global dan let mempunyai skop peringkat blok. Skop peringkat blok: var tidak mencipta skop peringkat blok, mari buat skop peringkat blok. Pengisytiharan Semula: var membenarkan pembolehubah diisytiharkan semula dalam skop yang sama, jangan biarkan.

Penunjuk pintar ialah penunjuk khusus C++ yang boleh melepaskan objek memori timbunan secara automatik dan mengelakkan ralat memori. Jenis termasuk: unique_ptr: pemilikan eksklusif, menunjuk kepada satu objek. shared_ptr: perkongsian pemilikan, membenarkan berbilang penunjuk untuk mengurus objek pada masa yang sama. weak_ptr: Rujukan lemah, tidak meningkatkan kiraan rujukan dan mengelakkan rujukan bulat. Penggunaan: Gunakan make_unique, make_shared dan make_weak ruang nama std untuk mencipta penunjuk pintar. Penunjuk pintar secara automatik melepaskan memori objek apabila skop tamat. Penggunaan lanjutan: Anda boleh menggunakan pemadam tersuai untuk mengawal cara objek dikeluarkan. Penunjuk pintar boleh mengurus tatasusunan dinamik dengan berkesan dan mencegah kebocoran memori.
