苏嵌第4天

苏嵌 项目实战

学习日志 姓名:高瑞  日期:  2018.7.12

今日学习任务      首先讲解了昨晚的任务 如何实现字符串的倒叙而不是字母的倒叙,

                           然后讲了指针函数的相关知识,指针数组和数组指针的区别 ,

                           最后如何用命令行参数输入数据

 今日任务完成情况    

掌握了如何通过指针实现字符串的倒叙。

掌握了指针型函数的定义方法——先往右看再往左看,()的优先级高

掌握了数组指针的调用方法和一个使用实例--排序

int  big(int x,int y)
{
return (x>y)?1:0;//条件表达式
}
void sort(int a[],int(*p)(int,int))
{
int i,j,tmp;
for(i=0;i<SIZE-1;i++)
{
for(j=0;j<SIZE-i-1;j++)
{
if(p(a[j],a[j-1])
{
tmp=a[j];
a[j]=a[j-1];
a[j-1]=tmp;
}
printf("%d",a[i]);
}
printf("\n");
}
int main()
{
int a[SIZE]={0};
GetArray(a);
sort(a,big);
print(a);


while(1);
return 0;

}

二维数组的基本概念


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

指针的内容是NULL时 ,怎么传递变量,及以下代码的错误原因

void InitMemory(char *s)
{
s=(char *)malloc(sizeof(char)*64);
}


int main()
{
char *ptr =NULL;
InitMemory(ptr);
strcpy(ptr,"helloworld");
printf("%s\n",ptr);


while(1);
return 0;
}    

如果要传递实参的内容时,应该传递传递它的地址


int *p()则不是变量说明而是函数说明,说明p是一个指针型函数,其返回值是一个指向整型量的指针,*p两边没有括号,作为函数说明,在括号内最好写入形式参数,这样便于与变量说明区别。


// argc  参数的个数
//argv  指针数组  具体的参数





 今日未解决问题

 今日开发收获 

  自我评价

             感觉挺困难的

其他  

字符串排序

 #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;

}
冒泡排序

#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/martial1/article/details/81021700