首页 > C/C++语言 > C/C++基本语法 > 请问外部变量和内部变量是什么意思?
2006
12-08

请问外部变量和内部变量是什么意思?

感到好抽象,外部,内部指的是哪里?

是对于储存器来说的,还是程序。 ——- 看那C语言部懂的概念


这是由于程序分块编译造成的。对于大型程序来说,一般有很多个小程序,每个小程序都是一个独立的编译单元。由于每个程序不可避免地要引用其它程序的变量,所以在编译时,要暂时不分配地址,而编译单元中的变量可以直接分配地址。这种编译上的不同,造成外部变量和内部变量上的差异。外部变量的地址定位要等到连接时才能完成。



哪里出现的

现在好像都没有这个说法了吧

如果有那也应该是对可见性来说

外部变量可以被其它文件访问

内部变量只能在定义的范围内访问(在文件内定义的就是在此文件内被访问 在函数内定义的就是在函数内可以访问)




谢谢大家,我懂了。但要在以后实践中才能理解得透。

随便在这里问个问题。
5 % 10 == 5
2 % 89 == 2
怎么会这样? 不是前面的数的绝对值要大于被除书的绝对值才行的吗 ?




我的理解,前面的数,2和5,就是被除数。
10和89是除数。



按照你的做法

5 % 10 == 0
2 % 89 == 1
和结果不同哦




这里不得不给个忠告,哪里不懂,赶快找本书看看,再不看,只会不停的重复过去的错误,永远停留在原地。
比如:
5 % 10 == 5
我可以说右边不一定是 5,右边可以是任何整数。
因为这个本身是一条关系表达式,在 c 语言里 == 是关系运算符,并不等同于 =,两者意思相差十万八千里,如果平时不注意这些细节,那么你编程时会吃很多的苦头,有时候你可能跟本查不出错误在哪里。

求余数运算看似简单,有些地方还是比较有趣的,不动手实验一下,会判断错误。如负数取余数:


代码:
#include <stdio.h>

int main()

{

printf (” -1 % 10 = %d\n”, -1 % 10);

printf (“(-1) % 10 = %d\n”, (-1) % 10);

printf (” 1 % (-10) = %d\n”, 1 % (-10));

printf (“(-1) % (-10) = %d\n”, (-1) % (-10));

return 0;

}


不测试一下,你答得上来吗?







5除以10商0余5,
cout<<(5%10):
将输出余数,5,而不是商,0.
==可以作等号(=)用,但在你贴出的表达式中,==作关系运算符,用于比较左边和右边的值是否相等,相等,则整个表达式的值为1,反之,为0。
cout<<(5%10==5)<<(5%10==4)<<endl;
这是我的理解,不一定都正确。


留下一个回复