C部落格作業 指標

2022-05-29 13:48:10 字數 2974 閱讀 5236

選擇這一題是因為這道題的通過率較低。為什麼會這樣定義呢「char *month」,當時只是隨便嘗試一下輸入十二個月份,沒想到可以,於是上網查詢一下,這種用法叫指標陣列,陣列中的每乙個都是指標,具體介紹我將寫在總結中。

begin

定義整型變數max,i,j;定義字元型變數temp;

max賦值為0;

for i=1 自增到 *(p+i)為0

if *(p+max)小於*(p+i)

那麼max賦值為i;

temp賦值為*(p+max);

for j=max to j=1

*(p+j)賦為*(p+j-1);

*p賦值為temp;

一開始讓j=i開始複製,導致錯誤,應該從max開始移動,後把i改成max

定義整型變數i,k,p,count;

for i=0 自增直到s[i]為0

if s[i]等於t[0]

then }

if count不等於0 then 返回 (s+k);

else 返回 null;

這是原來的部分**

但是這樣不能儲存子串最後一次出現在s字串中的首位址,而且不能做到在s字串中多次判斷子串是否存在,於是新增了k來儲存i,當s[i]==t[0]時count=1,如果後面的字串與子串不同,則令count自減,這裡其實用flag也可以,最後如果count為0,則說明s字串中不存在子串。

結構是c語言中一種新的構造資料型別,能把有內在聯絡的不同型別的資料匯聚成乙個整體,使它們相互關聯。同時,結構又是乙個變數的集合,可以按照對基本資料型別的操作方法單獨使用其成員的變數。

(1)結構型別定義的一般形式:

struct 結構名;
(2)關鍵字struct和它後面的結構名一起組成乙個新的資料型別名。c語言中把結構的定義看做一條語句,所以結構的定義以分號結束。

(3)在結構定義成員時所用的資料型別也可以是結構型別,例如:

struct address;

struct nest_student;

(4)注意:在定義巢狀的結構型別時,必須先定義成員的結構型別,再定義主結構型別。

(5)無型別名定義變數的方式:

struct  結構變數名錶;
需要注意的是,由於沒有給出結構名,在此定義語句後面無法再定義這個型別的其他變數,除非把定義過程再寫一遍。

(6)乙個結構型別變數所佔的記憶體空間是其各個成員所佔記憶體空間之和,可以直接用sizeof計算,如 sizeof(struct student),sizeof的運算物件可以是結構型別名,也可以是結構變數名,計算結果以位元組為單位。

(7)如果兩個結構變數具有相同的型別,則允許將乙個結構變數的值直接賦給另乙個結構變數,如 s1=s2 。

(8)結構成員操作符為「.」

(9)使用結構指標時,假如指標p=&s1,要用p訪問的結構成員進行賦值,則 (p).num=100,另,注意「.」的優先順序高於「*」的優先順序;還可以用->進行訪問,如 p->num=100。

(10)結構指標作為函式引數,如:

自定義函式 int update_score(struct student *p,int n,int course)

呼叫語句 pos=update_score(students,n,num) /*students為結構陣列名*/

char a[3][8]=;

char *n[3]=;

那麼系統給陣列a分配了3×8的空間,而給n分配的空間則取決於具體字串的長度。此外,系統分配給a的空間是連續的,而給n分配的空間則不一定連續。

由此可見,相比於比二維字元陣列,指標陣列有明顯的優點:一是指標陣列中每個元素所指的字串不必限制在相同的字元長度;二是訪問指標陣列中的乙個元素是用指標間接進行的,效率比下標方式要高。 但是二維字元陣列卻可以通過下標很方便的修改某一元素的值,而指標陣列卻無法這麼做。

課堂派5.

應該選d. a中的「p++」也是位址,與p的用法相同。

課堂派2.

不能直接對*(p+2)全部賦值,改正:

*(p+2).num=102030;

*(p+2).name[80]="資料結構";

*(p+2).price=40;

C部落格作業 指標

switch n 如果n為1,返回 january 如果n為2,返回 february 如果n為3,返回 march 如果n為4,返回 april 如果n為5,返回 may 如果n為6,返回 june 如果n為7,返回 july 如果n為8,返回 august 如果n為9,返回 september ...

C部落格作業 指標

定義迴圈變數i 輸入t字串 for i 0 to t i 0 遍歷字串 判斷m和i的關係 if m i for i 0 to maxn s i 0 end i else for i 0 to t m 1 0 賦值 s i t m 1 m end i s i 0 加上結束符 定義迴圈變數i,最大值所在...

c部落格作業 指標

經測試,不能直接指向一維陣列 所謂 行指標 二維陣列a 2 3 來說,就指的是a 0 a 1 這兩行,那麼如果行指標加數字的話,如果p 1,那麼這時指向的就是a 1 p本身指向的是a 0 通過不同的測試輸出發現 p 1 輸出的是2,第一行的第二個元素。根據指標與陣列的關係我們知道,陣列名可以當成指標...