19-12-31培训内容

一.上午培训内容

定义指针int*p,指针存放地址

#include

int main()

{

    int *p;

    int a;

    p=&a;

    printf("%d ",p);

    printf("%d ",*p); //解引用,输出的是储存的数据

}

指针就是整形数据,只能加减整形数据

整形指针只能表示整形变量的地址

地址是整形值

指针与指针之间不能进行运算

指针适用所有的数据类型

#include

int main()

{

    int a[4]={12,1,3,4};

    int *p;

    p=a;

    printf("%d %d %d",p,*a,*(a+1));

}

对于一维数组,数组的名,可以作为整个数组的首地址

对于多维数组a[0]代表第一行数组的首地址

*(a+1)第二行的首地址

#include

int main()

{

    int a=2;

    int *p1;

    int **p2;

    p1=&a;

    p2=&p1;

    printf("%d %d %d",p1,p2,*p1);

}

**p2是指针*p1的指针,用来查看*p1的地址存放到哪里

二.下午培训内容

//第一题:有5个字符串,首先将他们按照字符串中的字符个数由小到大排序

//再分别取每个字符串的第三个字母合并成新的字符串输出(若少于三个字符的输出空格)

//要求:利用字符串指针和指针数组实现

#include

#include

int main()

{

    int i,j=0,k=0;

    int s;

    char c;

    char a[50]={"*"};

    char b[5][2]={"*"};

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

    {

        printf("请输入字符串: \n");

        gets(a);

        s=strlen(a);

        b[i][0]=s;

        b[i][1]=a[2];

    }

    for(j=0;j<4;j++)

    {

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

        {

            if(b[i][0]>b[i+1][0])

            {

                for(k=0;k<2;k++)

                {

                    c=b[i][k];

                    b[i][k]=b[i+1][k];

                    b[i+1][k]=c;

                }

            }

        }

    }

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

    {

        printf("%c ",a[i]=b[i][3]);

    }

}

//第二题:字符替换,用函数replace将输入的字符串中的字符t(T)换成e(E)

//并返回替换字符个数

/*

#include

#include

int main()

{

    char a[200]={"*"};

    char b,c;

    int i=0,j;

    printf("请输入原字符串: \n");

    gets(a);

    j=strlen(a);

    replace(a.begin(),a.end(),'e','t');

    replace(a.begin(),a.end(),'E','T');

    puts(a);

}

*/

//第三题:编写一个程序,输入星期,输出该星期的英文名。用指针数组处理

/*

#include

int main()

{

    int s;

    char a[7][10]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};

    printf("输入星期:\n");

    scanf("%d",&s);

    printf("%s",*(a+s-1));

}

*/

你可能感兴趣的:(19-12-31培训内容)