二级指针作输入之内存模型二

来源:互联网 发布:影响二次销售 淘宝介入 编辑:程序博客网 时间:2024/05/29 15:31
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>//注意这种写法是错误的,因为实参是二维数据,跟模型1指针数组情况不一样void print_array_err(char **a, int n){    printf("a: %d, a+1:%d\n", a, a+1);    int i = 0;    for (i = 0; i < n; i++)    {        //printf("%s\n", a[i]); //首行地址,和首行首元素地址的值是一样        // a+i, *(a+i)    }}void print_array(char a[][30], int n){    //printf("a: %d, a+1:%d\n", a, a + 1);    int i = 0;    for (i = 0; i < n; i++)    {        printf("%s, ", a[i]); //首行地址,和首行首元素地址的值是一样    }    printf("\n");}void sort_array(char a[][30], int n){    int i = 0;    int j = 0;    char tmp[30];    for (i = 0; i < n - 1; i++)    {        for (j = i + 1; j < n; j++)        {            if (strcmp(a[i], a[j])> 0)            {                //交换的内存块                strcpy(tmp, a[i]);                strcpy(a[i], a[j]);                strcpy(a[j], tmp);            }        }    }}int main(void){    char a[][30] = { "22222222222", "11111111111", "bbbbbbbbbbb", "aaaaaaaaaaaa" };    int n = sizeof(a) / sizeof(a[0]);    printf("before sort:\n");    print_array(a, n);    sort_array(a, n);    printf("\nafter sort:\n");    print_array(a, n);    printf("\n");    system("pause");    return 0;}
0 0
原创粉丝点击