C和指標第六章答案(注意邏輯上的錯誤)

2022-08-11 02:39:15 字數 2204 閱讀 5399

)我同學也寫了乙個,因為自己在一開始測試時,寫了這麼一句

char *sourse = "abcdefg";

然後再呼叫函式,結果出錯。原因是用字串給指標賦值,就相當於在記憶體內寫了一常量,不能再變了。花了一整下午沒弄懂,還老錯!

同學幫我糾錯,也順便寫了乙個,比我的好。

#include #define nul     '\0'#include 

char* del_substr (char *str, char

const *substr)

}else str+=1

;

if(i==len)

*(str-len)='\0'

;

return

string

; }

}return0;

}int main (void

)

答案有bug。

#define null    0

#define nul '\0'

#define true 1

#define false 0#include

char *match (char *str, char

const *want)

return

str;

}char* del_substr(char *str, char

const *substr)

if (*str ==nul)

return

false;

while (*str++ = *next++)

;return

str;

}int main (void

)

/*

此程式的錯誤之處在於,i增加時,陣列的內容會變化,

**例如:i=1,j=4時,即3和9時,arr[4]會變成0;當i=2時,

**又會將arr[4]變為1,而應該把那些一開始賦值為0的元素

**給剔除掉。

*/#define max 50

int main(void

) }

}int c=0

;

for (i = 0; i < max; i++)

printf("%d

", c);

}

注意錯誤,又糾結了我幾個小時…………

這是正確的。

#define max     50

int main(void

) *arr = 1

; *(arr + 1) = 1

;

for (i = 1; i < max; i++)}}

int c=0

;

for (i = 0; i < max; i++)

printf("%d

", c);

}

C和指標 第六章 指標

1.指標在進行間接訪問之前,確保已被初始化。否則,會給指標分配乙個非法位址,輕則報錯,重則在毫不相干的地方報錯 指標偶爾包含合法位址 2.為了測試乙個指標變數是否為null,你可以將它與零值進行比較 3.注意 指標變數可以作為左值使用,並不是因為它們是指標,而是因為它們是變數。間接訪問指定了乙個特定...

第六章 指標

1.多位元組資料的位址是在最左邊還是最右邊的位置,不同的機器有不同的規定,這也正是大端和小端的區別,位址也要遵從邊界對齊 2.高階語言的乙個特性就是通過名字而不是位址來訪問記憶體的位置,但是硬體仍然通過位址訪問記憶體位置 3.記憶體中的變數都是義序列的0或1的位,他們可以被解釋為整數或者其他,這取決...

C語言第六章 指標

一,什麼是指標 2.其次要了解計算機的cpu和記憶體條之間的關係 3.指標的含義 二,指標的定義 1.指標變數的基本定義 includeint main void 2.指標變數的解釋 3.經典的指標程式 互換兩個變數的值 includevoid fun int p,int q int main vo...