【C】Re11 剩下的笔记

 

关于字符常量问题:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void string01 () {
    char * string1 = "Hello C language";
    printf("%s\n", string1);
    // string1[2] = 'A'; 修改无效
    printf("%s\n", string1);

    char string2[] = "Hello C language"; // 字符数组
    printf("%s\n", string2);
    string2[2] = 'A';
    printf("%s\n", string2);
}

int main() {
    string01();
    return 0;
}

纠正数组排序的函数封装,搞懂原因:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 选择法排序
void selectSorting() {
    // 样例数组
    int array[] = {1, 10, 8, 5, 9, 3, 6, 4, 2, 7};

    const int SIZE = sizeof(array) / sizeof(*array); // sizeof(array[0]) \ sizeof(int)

    for (int i = 0; i < SIZE; ++i) {
        printf("[%d]\t", array[i]);
    }

    printf("\n - - - - - - - - - - -\n");

    // -----------------------------------------------

    int temp;

    for (int j = 0; j < SIZE - 1; ++j) {
        for (int i = j + 1; i < SIZE; ++i) {
            if (array[j] > array[i]) {
                // swap
                temp = array[j];
                array[j] = array[i];
                array[i] = temp;
            }
        }
    }

    for (int i = 0; i < SIZE; ++i) {
        printf("[%d]\t", array[i]);
    }

    printf("\n");
}

// 封装的函数
void selectSorting2(int * array, int size) {
    // 转换为指针之后无法获取数组的个数信息, 只能用形参注入进来
    int temp; // 临时变量 交换用
    for (int i = 0; i < size - 1; ++i) {
        for (int j = i + 1; j < size; ++j) {
            if (array[i] > array[j]) {
                temp = array[i];
                array[i] = array[j];
                array[j] = temp;
            }
        }
    }
}
void printArray(int * array, int size) {
    printf("[");
    for (int i = 0; i < size; ++i) {
        if (i == size - 1) {
            printf("%d]", array[i]);
            break;
        }
        printf("%d,", array[i]);
    }
    printf("\n");
}

void test() {
    int array[] = {1, 10, 8, 5, 9, 3, 6, 4, 2, 7};
    const int SIZE = sizeof(array) / sizeof(*array);
    printArray(array, SIZE);
    selectSorting2(array, SIZE);
    printArray(array, SIZE);
}

int main() {
    // selectSorting();
    // test();
    return 0;
}

 

posted @ 2020-11-15 21:22  emdzz  阅读(127)  评论(0编辑  收藏  举报