C部落格作業05 指標

2022-07-15 00:15:25 字數 3396 閱讀 6395

這個作業屬於哪個班級

c語言--網路2011/2012

這個作業的位址

c部落格作業05--指標

這個作業的目標

姓名姚慶榮

目錄1.2 字元指標

1.3 指標做函式返回值

1.4 動態記憶體分配

1.5 指標陣列及其應用

1.6 二級指標

1.7 行指標、列指標

2.pta實驗作業(7分)

2.2 合併兩個有序陣列(2)(2分)

2.3 說反話-加強版 (3分)

指標是一種型別,被稱為「指標型別」。指標型別描述的是乙個位址,這個位址指向記憶體中另外乙個物件的位置。(一般以變數所在的記憶體單元的第乙個位元組的位址作為指標的位址。

int *p, a = 3;

p =&a;

間接訪問改變指標所指的變數

int a =1, x, *p;

p = &a;

x = *p++;

指標p先指向常量a,後將常量a賦值給x,並改變指標的值,使指標p不指向a;

定義運算型別

*(p)++

指標所指內容+1

++*p

指標所指的數值+1

p++指標向後移動一位

若某變數的位址作為函式的實參,對應的形參就是指標。

void printf(int *a, int *b)//指標作為形參

int a = 3;

int *b;

b = &a;

函式名

函式格式

函式作用

#include

#include

呼叫函式的宣告

strlen

strlen(a)

計算字串的長度

strcpy

strcpy(a, b)

把b字串內容賦給a字串

strcat

strcat(a, b)

連線a,b2個字串

strcmp

strcmp(a,b)

比較兩個字串的大小,(a大為1,b大為-1,相等時為0)

strstr

strstr(a, b)

找第二個字串在第乙個字串的出現的第乙個位址

malloc

a = (char)malloc(msizeof(char))

動態申請,結束後釋放記憶體

void *malloc(unsigned int size);

malloc(100);/*開闢 100 個位元組的臨時分配域,返回值為其第乙個位元組的位址*/(注:指標的基型別為 void,即不指向任何型別的資料,只提供乙個位址。如果此函式未能成功的執行(例如記憶體空間不足),則返回空指標(null)。)

void *calloc(unsigned n, unsigned size)

其作用是在記憶體的動態儲存區中分配n個長度為 size的連續空間。函式返回乙個指向分配區域的起始位置的指標;如果分配不成功,則返回null。

採用 calloc 函式可以為一維陣列開闢動態儲存空間,n 為陣列元素個數,每個元素長度為 size,這就是動態陣列。如:

p = calloc(50,4) /*開闢 50*4個位元組的臨時分配域,把起始位址賦給指標變數p */

void free(void*p);

其作用是釋放指標 p 所指向的動態空間,使這部分空間能被其他變數使用。p 是最近一次呼叫 calloc 或malloc 函式時的返回值。free函式無返回值。如:

free(p); /*釋放指標變數p指向的已分配的動態空間*/

int a[10][10];

for(int i=0;i<10;i++)

scanf("%s",a[0]); //二維陣列表示

char *p[10];

int i=0;

for(;i<10;i++)

元素a[1][2],列指標表示為a[1]+2,等價表示為(a+1)+2,那麼內容是(*(a+1)+2);

區別:我的**缺少的注釋,不易看懂,且套用兩層迴圈,增大了計算量。

輸入陣列並計算長度

for (i = len - 1 to 0 )

if (陣列不為空格也不為換行符)

記錄單詞最後一位字母位置

for (j = i - 1 to 0 )

if陣列等於空格; break

end if

end for

記錄單詞第乙個字母位置

if不是遍歷的第乙個單詞 輸出空格

end if

for (k = first to last )

輸出字母

end for

繼續遍歷

C部落格作業05 指標

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

C部落格作業05 指標

格式 datatype name value 定義格式 int p 定義,定義時必須帶 float p1 a char p2 c p1 b p2 d 賦值,在定義的同時賦值需要帶,單獨賦值時不能帶,因為p代表指標變數的值,即位址。p代表指標指標變數指向的變數的值。乙個函式在編譯時被分派乙個入口位址,...

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.動態記...