学习日志

学习日志姓名:孙双      日期:2018/7/12
今日学习任务

1.函数和指针

2.函数指针变量

3.指针型函数

4.二维数组和指针

5.二维数组与一维数组指针变量的关系

6.指针的指针

7.命令行参数


今日任务完成情况

 

(详细说明本日任务是否按计划完成,开发的代码量)


1.函数指针的使用

2.用函数指针实现冒泡排序的从小到到,从大到小排序

3.用指针函数输出一个函数

4.int(*p)()和int*p()区别

5.二维数组与指针运算

6.二维数组的两种访问方式

7.输出命令行参数


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

int*(*(*fp)(int))[10];//fp是一个指针指向函数,函数有一个int类型参数,函数的返回值是一个指针,指向一个有10个元素的数组,每个元素都是一个整型指针。

int *(*(*array[5]())();//指针函数指针函数指针数组

array是一个数组,有五个元素,元素是指针类型,指向一个函数,函数没有形参,返回值是一个指针,指向一个函数,函数没有形参,,返回值是一个整形指针。


a)一个整型数                                                                                                      int a
b) 一个指向整型数的指针                                                                                       int *a
c) 一个指向指针的的指针,它指向的指针是指向一个整型数                                             int**a
d) 一个有10个整型数的数组                                                                                   int a[10]
e) 一个有10个指针的数组,该指针是指向一个整型数的                                                 int*a[10]
f) 一个指向有10个整型数数组的指针                                                                        int(*a)[10]

g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数                                   int(*a)(int)

h) 一个有10个函数指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数

                                                                                                          int (*a[10])(int)

a[4][3]

&a 数组的地址  单位 48字节       a 首行地址  单位16字节   a[0],*(a+0),*a首行首元素地址   单位4字节

a+1,&a[1] 第二行地址  单位16字节   a[1],*(a+1)   第1行第0列元素地址   单位4字节   

a[1]+2,*(a+1)+2,&a[1][2]    第一行第二列元素地址     *(a[1]+2),*(*(a+1)+2),a[1][2]   第一行第二列元素值




今日未解决问题
用命令行参数实现字符串排序,冒泡排序。
今日开发收获

通过今天的学习了解了函数指针变量,以及函数名前加‘’*‘’是指针型函数,它的返回值是地址。int(*p)()函数指针,int *p()指针函数,明白了指针数组这一概念。也理解了二维数组与一维数组指针变量的关系。

自我评价

 

(是否按开发规范完成

 

既定任务,需要改进的地方,与他人合作效果等)


今天还是学的指针,依旧是不太了解,有的知识点还是不太了解。
其他 
  

命令行参数方式:

字符串排序:

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

#define SIZE 10


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

{
    char *tmp;
    int i,j;
    for(i=0;i<length-1;i++)
    {


        for(j=0;j<length-i-1;j++)
            if(strcmp(a[j],a[j+1])>0)
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
    }
}
int main(int argc,char *argv[])
{
int i;
    char *string[SIZE]={0};
    sort(argv,argc-1);


for(i=1;i<argc;i++)
{
printf("%s ",argv[i]);
}
printf("\n");
return 0;
}

 

2、冒泡排序程序

程序代码:

#include <stdio.h>


#define SIZE 10




void sort(*a[],int argc)
{
   int j;int tmp;int i;
for(i=0;i<argc;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=0;i<argc;i++)
{
printf("%d\n" ,a[i]);
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值