无基础也能看懂的C语言变量详解-创新互联

变量
  • 一、什么是变量?
  • 二、变量分为哪几种?
    • 1、局部变量
      • a、局部变量的的定义
    • 1、全局变量及一些需要注意的点
  • 三、局部变量与全局变量的冲突
    • 1,难点理解
  • 总结

目前创新互联已为超过千家的企业提供了网站建设、域名、虚拟主机、网站托管维护、企业网站设计、玛多网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。一、什么是变量?

1,变量可以保存程序运行时用户输入的数据(可以是一个数字,也可以是一个字符)
2,变量的创建需要定义类型(int long char double float short)
3,创建变量时,程序会开辟一个空间用于存放赋给变量的值,而且这个空间的值是可以替换的(就相当于一杯矿泉水,你可以把矿泉水替换成果汁)

二、变量分为哪几种?

变量分为局部变量全局变量两种。

1、局部变量

局部变量的的定义:局部变量是在函数内部定义并使用的变量,它只在函数内部有效。
在语句块中也可以定义变量,它的作用域(就是该变量的使用范围,起作用的地方)只限于当前语句块,例如if语句中定义的变量
解析:每个函数在执行时,系统都会为该函数分配一块“临时空间”,该函数所有的局部变量都保存在其中
当函数执行完之后,该空间被释放,局部变量也就随之失效,因此离开函数之后就不能访问该函数的局部变量了,否则会有异常信息提示:NameError

a、局部变量的的定义
int main (){int  i = 0;
	//  int  声明类型是整形
	//   i   变量名
	//   =   赋值(不是相等)将右值赋给左值(就是将右边的值给左边的值)

}
1、全局变量及一些需要注意的点

全局变量的定义:在所有函数外部定义的变量称为全局变量,它的作用域默认是整个程序,也就是整个工程,包括工程下的一些文件(.c .h 文件)

假设定义了两个.c文件要在第二个文件中调用第一个文件的全局变量需要定义,例如:

int i = 1;
//第一个文件中的全局变量
int main(){//第二个文件
	extern int i;  //声明(意思是在外部文件有一个int i的全局变量,在这里说明,之后就可以使用了)
}

需要注意的是:由于C语言是从上到下执行的,假如定义两个函数,函数1和函数2,要使全局变量作用于两个函数,需要在两个函数之前定义全局变量
例如:

int i = 0;   //定义在两个函数之前才都能被两个函数调用
void game1(){}  //函数1
void game2(){}  //函数2
int main(){//主函数
}
三、局部变量与全局变量的冲突

当全局变量与局部变量同名时,局部优先
为什么呢?因为在局部范围内如果局部变量的名称和全局变量名称相同时,全局变量会被 “ 屏蔽 ” ,不再起作用
在C语言中变量的使用遵循就近原则如果当前的作用域存在 同名变量 就不会向更大的作用域寻找变量。
值得一提的是{ } 花括号包围的代码也拥有独立的作用域

1,难点理解

C语言规定:只能以更小的作用域向更大的作用域中去寻找变量,而不能反过来使用更小作用域中的变量,这个时候就近原则就不管用了。例如以下代码:

int main(){int i = 22;
	if(1){int i = 0;
	}
	printf("%d",i);  //打印i
}

这时我们看第一个 i == 22 这个 i 的作用域是整个main 函数
if 里面的 i 作用域是整个if
我们要用printf 打印 i ,而printf 他是在 main 函数里,printf找这个 i只会向更大的作用域寻找
有的人这时候就有疑问了。 if 的作用域不是比 printf要大吗?虽然是,但是if结束变量 i 也会销毁,所以这里只能寻找 main 函数的变量i

总结

以上就是今天要讲的内容,希望大家对C“语言中的变量有一个更深的理解。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


标题名称:无基础也能看懂的C语言变量详解-创新互联
网页地址:http://hbruida.cn/article/ddojdp.html