C语言中有很多小细节值得我们注意,这些细节有助于我们更好的理解程序代码。
全局变量与局部变量
全局变量是定义在函数前面,局部变量是定义在函数内部。
全局变量
#include <stdio.h>
int x;
void change(int x)
{
x=x+1;
}
int main ()
{
int x=10;
change();
printf("%d",x);
return 0;}
输出的结果:
11
从上面我们可以看出,x的值在整个程序中,可以共用,所以。change()函数可以改变x的值。
局部变量
#include <stdio.h>
void change(int x)
{
x=x+1;
}
int main ()
{
int x=10;
change();
printf("%d",x);
return 0;}
输出的结果:
10
这里的话,我们定义函数是在函数内部定义的,只能在主函数中起作用,change()函数无法改变x的值。
修改函数中变量的值的两种方法
通过指针
#include <stdio.h>
void swap(int *a,int *b)
{
int temp =*a;
*a=*b;
*b=temp;
}
int main()
{
int a=1,b=2;
int *p1=&a,*p2=&b;
swap(p1,p2);
printf("a=%d,b=%d\n",*p1,*p2);
return 0;
}
输出结果
a=2,b=1
c++可以通过引用&
#include <stdio.h>
void swap(int* &p1,int* &p2){
int *temp=p1;
p1=p2;
p2=temp;
}
int main()
{
int a=1,a=2;
int *p1=&a,*p2=&b;
swap(p1,p2);
printf("a=%d,b=%d",*p1,*p2);
return 0;}
输出结果
a=2,b=1
只有这两种方式,其他的方法都是实现不了的。明天开始可能就开始刷题了。每日一题。