两个数组拼合且有序,指针部分总结。

#include <stdio.h>
#include <stdlib.h>

#define M 7
#define N 3

int main()
{
    int a[M]={1,3,5,7,9,11,20};
    int b[N]={2,6,8};
    int c[M+N]={0};

    int i=0; //a的下标
    int j=0; //b的下标
    int zu_he=0; //组合下标

    while(i<M&&j<N)
    {    
        //谁小谁谁放进去自身并且增加
        if(b[j]<a[i])
        {
            c[zu_he++]=b[j++]; 
        }

        else
        {
            c[zu_he++]=a[i++];
        }
        
    }

    //谁先跳出来,另一个就继续接力
    if(i == M)
        while(j < N)
            c[zu_he++]=b[j++];

    if(j == N)
        while(i < M)
            c[zu_he++]=a[i++];

    for(int i=0;i<M+N;i++)
        printf("%d\n",c[i]);
    system("pause");
}

/*指针部分总结*/

//内存是以字节为单位进行编址的,不是以位(bit)
//&--reference  引用/取地址符,取出的地址是有类型的 如int a &a==(int*)(0x a的十六进制代码)   
//指针的本质有类型的地址

/*
1、大小端是不同的对于数据在内存地址中的存放方式,不同的处理器(平台)的数据存储方式是不同。的如果
实现跨平台通信则大小端是不能忽视的问题。
大端模式:数据的高位存储在内存的低字节。ARM/PowerPC等处理器采用大端模式
小端模式:数据的地位存储在内存的低字节。Intel架构处理器采用小端模式。
如一个数据:0x12345678;对应内存地址是0x00~0x03。
大端模式                                                  小端模式
地址:0x00 0x01 0x02 0x03 地址:0x00 0x01 0x02 0x03

数据:0x12 0x34 0x56 0x78 数据:0x78 0x56 0x34 0x12
*/

猜你喜欢

转载自www.cnblogs.com/huxiaobai/p/10429403.html