C部落格作業05 指標

2022-05-04 07:15:06 字數 2765 閱讀 6743

格式:datatype name = value; //定義格式

int p; //定義,定義時必須帶 。

float p1 = &a;

char p2 = &c;

p1 = &b;

p2 = &d; //賦值,在定義的同時賦值需要帶,單獨賦值時不能帶,因為p代表指標變數的值,即位址。p代表指標指標變數指向的變數的值。

乙個函式在編譯時被分派乙個入口位址,這個位址就稱為函式的指標,函式名代表函式的入口位址。

其宣告格式為:返回值型別 (fun_ptr)(引數列表)

如 int (p)(int a, int b); p是乙個指標變數,它指向乙個函式,這個函式有2個整型引數,函式返回值型別為int。p首先和*結合,說明p是乙個指標,然後再與()結合,說明它指向的是乙個函式,指向函式的指標即為函式指標。

返回指標的函式:乙個函式可以返回乙個整型值、字元值、實型值等,也可以返回指標型的資料,即位址;

定義形式為:型別名 *函式名(參數列列); 例如:int a(int x,int y); 注意與指標函式int (a)(int x,int y)不合。

注意:在挪用時要先定義乙個適當的指標來接收函式的返回值,這個適當的指標其型別應為函式返回指標所指向的型別。

例:pc = (char *)malloc(100);暗示分派100個位元組的記憶體空間,並強制轉換為字元陣列型別,函式的返回值為指向該字元陣列的指標,把該指標付與指標變數pcchar *pc=null;pc = (char *)malloc(100);void型別的指標void指標是一種很特另外指標,其實不指定它是指向哪一種型別的資料,而是根據需要轉換為所需資料型別。

指標果然是c語言的靈魂,其作用十分巨大,但是學習起來也難度不小,剛剛接觸時還很矇圈,再加上這周事情特多都沒複習導致更加難以理解,還好利用空餘時間複習並敲了一些pta題目,現在總算對指標有了一定了解,但是想要深入還要繼續應用實踐。

定義乙個函式char* fin(char* str,char op)

定義兩個字元型變數op,ch用來儲存想要查詢的字元和吸收『\n』

定義乙個字元陣列,

用fgets讀入字串,並在字串的最後加上『0』。

向函式fin傳入str首位址和字元op,

在函式中遍歷陣列,計錄指標的偏移量

if(條件不滿足)返回null

else返回str+偏移量

if(條件滿足)輸出not found

else輸出下標。

ch 儲存多餘『n\』

fgets讀入字串,最後要記得賦零

指標做函式返回值的函式的寫法

下標偏移量和指標位置的關係

1:沒有考慮到第乙個就符合的情況

2:第乙個就返回的判斷錯誤

3:格式錯誤(其實前幾個錯誤就有了。。。)按題目要求改了一下就過了

根據傳入的引數

定義乙個整型指標p指向首位址

for i 0 to n step 1 do

將陣列n接到陣列m後面

endfor i 0 to m+n-1 step 1 do

//將合併的陣列從小到大排序

陣列的合併

選擇法排序

指標運算元組內容

1:用我自己先合併再排序的方法,發現資料量太大時會超時

2:用同學在定義乙個陣列,在同時移動指標排序,用空間換時間超時的測試點就過了

定義乙個整型變數max儲存最大值的偏移量

for i 1 to n step 1 do

找出最大值的偏移量

end和a[0]交換

for i 2 to n step 1 do

找出次小值的偏移量

end和a[1]交換

用迴圈找最大

用指標操作交換陣列中的兩個數

1:沒有交換直接將找到的最大值賦給a[0],導致原來的還在

2:交換是寫反了導致兩個位置相同

#include#includeint main()

for(j=1;j<=2*k-1;j++)

for(j=1;j<=abs(n-i)+1;j++)

printf("\n");

} return 0;

}

效果:

abs函式(針對整型的絕對值函式)用以處理菱形問題十分方便

C部落格作業05 指標

展示關於 指標題目集 分數截圖。每個知識點具體展開介紹。包括指標如何指向字串 字串相關函式及函式 原型的理解 字串相關函式用法 擴充套件課堂未介紹內容 具體格式是什麼,注意事項。為什麼要動態記憶體分配,堆區和棧區區別。動態記憶體分配相關函式及用法。舉例為多個字串做動態記憶體要如何分配。多個字串用二維...

C部落格作業05 指標

1.指標做迴圈變數做法 基本做法如下 int a 10 int p p a 指標指向a陣列的首位址 fgets a,10,stdin for p a p 0 p n p 2.字元指標如何表示字串 基本做法如下 char str abc char p for p str p 0 p n p 3.動態記...

C部落格作業05 指標

名說明a二維陣列名是乙個二級指標,即a 0 的位址 a 0 一級指標,即a 0 0 的位址 a i第i行的位址 a i 第i行首元素的位址,等價於a i a i 第i行首元素的值 指標這塊內容確實比較難理解,我pta上的大多數題目都是用陣列的操作思維完成的,現在通過部落格重新過了一遍書本的內容,發現...