c语言疑难问题,c语言初学者常犯的错误
在的第一篇博文中
@ TOC
先说前后,我们看两个例子来感受一下。
先有第一个,后有第二个。总的来说,我觉得后面的频率比前面的高。
先执行后表达式,然后在表达式执行后。
即先用后用。
B=a可以拆分成B=A=A 1
当我们来到C时,A的值已经增加了1,即c=11。
B=a可以拆分成a=a 1 b=a,也就是b=11
这里是使用前添加的。
c=a a的值加了1,即c=11。
二、静态的使用1。修改局部变量
不难看出,2222A是一个局部变量,在使用堆栈函数后会被销毁,所以每次调用A都会将A的值重置为1 a=a 1,最后每次输出都是2。
现在函数中的A被static修改到了静态区域。
所以这个调用A的值不会随着函数调用的结束而销毁。
第一个A的结果是2,依次增加1。
最后的结果是2 3 4 5 6。
2.修饰全局变量
Extern用于声明外部符号。
定义两个源文件。
全局变量的值在运行时打印出来。
当使用static来修饰全局变量时,我们发现我们会报告一个错误。
一般情况下,可以使用外部声明(extern)。
全局变量有外部链接属性,当用static修饰时,外部链接属性就变成了内部链接属性,通过链接找不到其他源文件。
也就是说,全局变量只能在它们自己的源文件中使用。
3.修改功能
这里仍然定义了两个源文件。
找到add函数,得到结果8。
这里使用static来修饰并报告一个错误。
函数也是其他带有外部链接属性的源文件,可以声明,但是被static修改后就变成了内部链接属性,只能在自己的源文件中使用。
4.总结一下,可以使用程序中具有外部链接属性的其他源文件(没有被static修改的全局变量函数)
而那些具有内部链接属性的只能在自己的源文件中使用(静态修改的全局变量函数)。
。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。