最近疫情閑著自學C語言啃指標,感覺指標就是火影忍者里的穢土轉生。
藥師兜穢土轉生出宇智波斑,妄圖毀滅世界,沒想到強如斑爺強行解開穢土轉生打爆五影。
這一劇情用指標來代替
主函式通過指標呼叫函式,主函式:我主函式才是世界的主宰,被調函式通過指標修改主函式,被調函式:少年,你還能起舞嗎?
指標功能強大如斯…
uj5u.com熱心網友回復:
指標給愛懟BUG的程式員帶來了無窮樂趣
在線送你一個BUG
int *recombine(int *part1, const int *part2, int len1, int len2) {
int pos1 = 0, pos2 = 0, pos = 0;
int *result = (int *) malloc(sizeof(int) * (len1 + len2));
while (pos < len1 + len2) {
if (*(part1 + pos1) < *(part2 + pos2)) {
*(result + pos) = *(part1 + pos1);
pos1++;
} else {
*(result + pos) = *(part2 + pos2);
pos2++;
}
if (pos1 == len1) {
while (pos2 < len2) {
pos++;
*(result + pos) = *(part2 + pos2);
pos2++;
}
break;
} else if (pos2 == len2) {
while (pos1 < len1) {
pos++;
*(result + pos) = *(part1 + pos1);
pos1++;
}
break;
}
pos++;
}
free(part1);
return result;
}
int *sort(int *num, int len) {
int *part1 = NULL, *part2 = NULL;
if (len > 2) {
part2 = sort(num + len / 2, len - len / 2);
part1 = sort(num, len / 2);
return recombine(part1, part2, len / 2, len - len / 2);
} else {
if (len == 2) {
if (*(num + 1) < *num) {
int result = *num;
*num = *(num + 1);
*(num + 1) = result;
}
}
return num;
}
}
int *merge_sort(const int *num) {
int len = sizeof(num);
int *replica = (int *) malloc(len);
for (int i = 0; i < sizeof(num); i++) {
*(replica + i) = *(num + i);
}
return sort(replica, len);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/151765.html
標籤:新手樂園
上一篇:有幾個選擇題不會
