練習10-1
/*---編寫函式adjust_point,如果n指向的值小於0,就將其改為0;如果值大於100,
就將其改為100(如果是0~100的值,則不修改)。---*/
#include void adjust_point (int *n)
int main (void)
練習10-2
/*---將 *y 年 *m 月 *d 日的日期,修改為其前一天或後一天的日期。---*/
/*---本程式思路應該先思考特殊時期並做特殊處理,如月初和月末則需要額外對日期和月份同時做特殊處理。---*/
#include int years(int *y)
int day(int y, int m)
return i;
}void decrement_date(int *y, int *m, int *d)
if(!(*m))
}void increment_date(int *y, int *m, int *d)
if (*m > 12)
}int main(void)
練習10-3
/*---將n1,n2,n3指向的三個int型整數按公升序排列。---*/
#include void swap(int *a, int *b)
void sort4(int *n1, int *n2, int *n3)
void sort3(int *n1, int *n2, int *n3)
if (*n1 > *n3)
if (*n2 > *n3)
}int main(void)
練習10-4
/*---編寫set_idx函式,接收元素型別為int型,元素個數為n的陣列,並為所有
元素賦上和下標相同的值。---*/
#include void set_idx (int *v, int n)
}int main(void)
函式的引數:main函式呼叫含參函式時,實參的值會傳給形參。這個複製過程是單向的,這種引數傳遞方式稱為值傳遞。
取址運算子:我們一直使用的單目運算子&通常被稱為取址運算子。表示物件位址的轉換說明為%p。
int型變數:儲存「整數」的盒子。
指標運算子:在進行顯示的地方,就要用到叫作指標運算子的單目運算子 *了。將指標運算子*寫於指標之前,就可以顯示該指標指向的物件內容。
空指標:空指標是能夠和指向物件的指標明確區分的「什麼也不指向」的特殊指標。表示空指標的物件式巨集,是稱為空指標常量的null。
指標和陣列:陣列名原則上會被解釋為指向該陣列起始元素的指標。
指標運算子和下標運算子:如果在指向陣列內元素的指標 p+i 前寫上指標運算子*,那麼表示式*(p+i)就表示陣列元素本身。
陣列和指標的不同點:陣列名可以作為位址賦值給指標,讓指標指向陣列。而陣列名不可以賦值給另乙個陣列名,因為賦值表示式的左運算元不可以是陣列名。
《明解C語言》筆記及課後習題答案 第五章
練習5 1 從頭順次為陣列中的元素賦值0,1,2,3,4 include int main void return 0 練習5 2 從頭順次為陣列中的元素賦值5,4,3,2,1。include int main void return 0 練習5 3 修改程式,從頭開始依次使用5,4,3,2,1進行...
《明解C語言》筆記及課後習題答案 第十一章
練習11 1 將 清單進行修改 include int main void 練習11 2 將 中的常量用程式計算出來 include int count const char c int main void char p for i 0 i count a i printf a d s n i,a ...
《明解C語言》筆記及課後習題答案 第十二章
練習12 1 編寫顯示物件takao各成員位址的程式。include define name len 64 struct student int main void printf 姓名 p n takao.name printf 姓名 d n takao.name printf 身高 d n tak...