全局变量和局部变量同名
来源:互联网 发布:杀不死 知乎 编辑:程序博客网 时间:2024/06/05 20:46
#include<stdio.h>
#include<stdlib.h>
int x=1;
int main()
{ void a(void);
void b(void);
void c(void);
printf("变量x的地址:%d\n",&x);
int x=3; //这里的x是重新定义的,所以他跟前面的全局变量是不一样的
printf("变量x的地址:%d\n",&x);
a();
b();
c();
system("pause");
return 0;
}
void a(void)
{
int x=25; //这里的x是重新定义的,所以他跟前面的全局变量是不一样的
printf("x in a is:%d\n",x);
printf("变量x的地址:%d\n",&x);
++x;
printf("++x in c is:%d\n",x);
printf("变量x的地址:%d\n",&x);
}
void b(void)
{
static int x=50;//这里的x是重新定义的,所以他跟前面的全局变量是不一样的
printf("x in b is:%d\n",x);
printf("变量x的地址:%d\n",&x);
++x;
printf("++x in b is:%d\n",x);
printf("变量x的地址:%d\n",&x);
}
void c(void)
{//变量必须先定义后使用,这个函数中没有定义变量x。既然这里没有定义,那么能用,
//就表明他是一个全局变量,这时就去程序开头看。想外部变量,一般都会加exter
printf("gloable x in c is:%d\n",x);
printf("变量x的地址:%d\n",&x);
++x;//这里的地址是全局变量是因为他只在一个地方定义了,及全局变量的地方定义了。
printf("gloable ++x in c is:%d\n",x);
printf("变量x的地址:%d\n",&x);
}
//如果在函数后面定义全局变量,而前面的函数需要用到该全局变量,则需要在函数内部对引用的全局变量进行说明:
// extern 类型说明符 全局变量名
//在函数内部使用extern说明变量时,编译器并不会为变量分配内存单元。
//该语句只是告诉编译器,在函数中使用该变量是在外部定义的全局变量。
一个全局变量的定义在一个程序中只能出现一次,而在函数中说明对全局变量的引用可出现多次。
全局变量和局部变量同名(写个测试程序):
正常情况下,全局变量可以在程序各函数中使用。如果某个函数和复合语句中定义了与全局变量名称相同的局部变量,
则在该函数或者复合语句中该同名的全局变量将不起作用。退出函数后,仍然可正常访问全局变量中的值。并且,同
名的全局变量和局部变量的值互不干扰。
全局变量也称为外部变量。
- 全局变量和局部变量同名
- 全局变量和局部变量同名时操作
- 局部变量能否和全局变量同名?
- 局部变量和全局变量同名的情况
- 同名的全局变量和局部变量对程序的影响
- java同名全局变量和局部变量的问题
- java同名全局变量和局部变量的问题
- 全局变量与局部变量同名的后果!
- 同名的全局变量与局部变量
- 局部变量和全局变量
- 局部变量和全局变量
- 全局变量和局部变量
- 局部变量和全局变量
- 全局变量和局部变量
- 局部变量和全局变量
- 全局变量和局部变量
- 全局变量和局部变量
- 局部变量和全局变量
- jni简单使用
- 数据库基础--SQL 语言(DQL、DDL、DML、DCL)
- NSString+NSMutableString+NSValue+NSAraay用法汇总
- Make arm学习笔记
- centos wget 下载 安装 jdk 的方法
- 全局变量和局部变量同名
- 知其然知其所以然 atoi实现 字符串转整型
- 第十四周上机实践项目——成绩处理(函数版)
- 60个开发者不容错过的免费资源库
- xcode的物理目录与工程视图
- oracle 逆序输出字符串 11g
- 有感于台湾铁路退票
- 一、java第一步,Hello world
- 第14周项目11-字符串统计(一)