windows ?下面EOF的輸入時(shí)ctrl+z,linux里面則是ctrl+d
static函數(shù)只能本文檔可見,但是如果test.c中包含了test.h,而test.h中定義了void fun()。在test.c中調(diào)用fun()函數(shù)是合法的
關(guān)于交換,最常見的就是引入一個(gè)中間變量值,通過賦值來交換兩個(gè)變量的值。但是還有兩個(gè)方法,不需要定義第三個(gè)變量。
void swap(int *x, int *y)
{
*x = *x + *y;
*y = *x - *y;
*x = *x - *y;
}
void swap2(int *x, int *y)
{
*y = *x^*y;
*x = *x^*y;
*y = *x^*y;
}
以上可以成功實(shí)現(xiàn)兩個(gè)變量的值進(jìn)行交換,但是切記:在這兩種函數(shù)中,如果傳入的兩個(gè)參數(shù)是同一個(gè)地址,就會(huì)導(dǎo)致地址存放的變量值置為0。比如說*x=*x+*y;這行語句中改變的是*x的值,但是由于x的地址也是y的地址,因此也就改變了*y的值。所以第二行中,*y=*x-*y;使得*y的值變?yōu)?.