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
只有這兩種方式,其他的方法都是實現不了的。明天開始可能就開始刷題了。每日一題。