实训第四天---------指针数组、函数指针

今日学习任务

指针和数组


今日任务完成情况

1,字符串的逆序输出

2,函数和指针的关系

3,指针数组与数组指针



今日开发中出现的问题汇总

1,指针的值传递与址传递

2,二维数组的指针的表达


今日未解决问题

具体指针函数的调用


今日开发收获

1int(*pf)();表示pf是一个指向函数入口的指针变量。

2int (*p)()是一个变量的说明,是函数指针,指向一个函数入口地址;

int *p()不是变量说明而是函数说明,是指针函数。

3,使用右左规则判断是定义了指针还是数组。

4,指针里必须有地址才可以用strcpy赋值。


自我评价

基础不牢,不少知识都忘记了对数组指针的理解不是很透


其他

作业

用命令行参数代码:

1、字符串排序:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

 

#define SIZE 3

 

void sort(char *string[],int length)

{

int i,j;

char *t;

 

for(j=0;j<length-1;j++)

{

    for(i=0;i<length-j-1;i++)

{

    if(strcmp(string[i],string[i+1])>0)

{

      t=string[i];

       string[i]=string[i+1];

                      string[i+1]=t;

}

}

}

}

 

int main(int argc, char *argv[])

{

int i;

 

sort(argv,argc-1);

 

printf("The string after sort:\n");

for(i=1;i<argc;i++)//输出

               {

  printf("%s ",argv[i]);

}

 

    while(1);

    return 0;

}

 

2、冒泡排序程序

程序代码:

#include <stdio.h>

 

void sort(int *a[],int argc)

{

    int i, j, tmp;

for (i = 0; i < argc - 1; i++)

{

for (j = 0; j < argc - i - 1; j++)

{

if (a[j] < a[j + 1])

{

tmp = a[j];

a[j] = a[j + 1];

a[j + 1] = tmp;

}

}

}

}

 

void print(int *a[],int argc)

{

        int i;

for (i = 1; i < argc; i++)

{

printf("%d ", a[i]);

}

printf("\n");

}

 

int main(int argc, int *argv[i])

{

 

sort(argv,argc);

print(argv,argc);

 

while (1);

return 0;

}


猜你喜欢

转载自blog.csdn.net/weixin_42653222/article/details/81023930