学习日志


 


              姓名: 艾志奇           日期: 2018.07.12

 

今日学习任务

指针与函数,指针数组,数组指针,指针的指针,命令行参数

 

今日任务完成情况

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

 

今日任务已按计划完成。在老师的指导下编写了单词位置倒置,不改变单词内部结构;函数指针的实现;字符串排序;指针型函数的实现;用指针输出数组;指针的指针的用法等程序。

 

 

 

今日开发中遇到的问题汇总

 指针中值传递与地址传递

今日未解决问题

今日开发收获

1.指向【二维数组】的指针几种表示方式:

[&a]  数组的地址,代表整个数组 单位48字节

[a ]  数组首行地址 单位16字节

[a[0]/ *a/ *(a+0)]  首行首元素地址 4字节

[a+1 /&a[1] ]  第二行首地址 16字节

[a[1]/ *(a+1) ]   第二行第0列元素地址

2.命令行参数

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

argc:参数的个数

argv:具体参数,保存参数

3.函数指针int(*pf)();表示pf是一个指向函数入口的指针变量,该函数的返回值是整型

指针函数:返回值是一个指针  int *p()

4.运用右左规则判读是指针还是数组

5. int *p=&a;//p是一个指针,指向a,保存a的地址

int **q=&p;//q是指针的指针,保存p的地址

int ***t=&q;//保存q的地址

 

 

 

 

自我评价

(是否规范完成指定任务,需要改进的地方,与他人合作等。)

名称类似的几个名词概念不清,读程序有困难,听得懂但是自己不会写,希望能通过对指针程序的消化取得进步。

            其他

                无  

 

 

 

学习日志                     姓名:   王瑶           日期: 2017.07.11   

今日学习任务

c语言基础知识学习,包括:指针、指针和变量、指针和数组、指针和字符串等内容

 

日任务完成情况

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

 

本日任务按计划完成:

1、回顾编写字符串插入字符程序与洗牌发牌程序。

2、指针的内存分配,定义、初始化及遍历。

3、指针和变量的关系及指针变量的使用步骤。

4、指针与一维数组的关系及互换使用。

5、字符数组和字符串的区别。

6、以上学习均结合编程,结合以前编写的代码用指针编写,学习编写字符串复制程序、字符串逆序输出程序、及各类指针初始化遍历等程序约8个。

今日开发中遇到的问题汇总

1、使用scanf(%c,&c);输入时会直接跳过输入输出下面的(回车键也算字符)

2、printf(%s\n,str);输出时后面会出现乱码(分配空间比使用的要多,但printf要遇见\0才会结束)

日未解决问题

日开发收获

1、指针是变量的一种,里面是一个地址,通过地址找到所要找的数据,单元的地址就是指针的内容。

2、无论是什么类型的指针都是四个字节。

3、定义什么类型的指针,就指向什么类型的变量。

4、*有两层含义:定义的时候:表示变量是一个指针、     使用的时候:取值。

5、y=*px++//先px地址取值,然后px加加。

6、(*p)++和*p++区别,前者是值加,后者是址加。

7、指针变量的使用步骤:

1定义一个指针

2给指针变量赋地址

3使用指针变量运算

8、char *p;*p指向随机内存,仅为p分配4个字节内存,并未给随机空间分配,不可以使用,p为野指针,指向不能使用的内存空间。

9、char *p=char *)malloc(sizeof(char)*64)//申请64字节内存//malloc只能返回void *类型的首地址,所以需要强制类型转换,需结合#include<stdlib.h>使用。

10、char *ptr;//野指针

ptr="helloword"//合法 指针的赋值

char str[20];//在栈上面分配20个字节内存,str值固定,是一个常指针

str=“helloword//不合法 常量 存放在代码段 有固定地址,是相当于修改一个指针常量

str是常量 不能修改,ptr是变量,可以修改。

11、malloc要结合头文件#include<stdlib.h>使用,strcmp是比较函数,要结合头文件#include<string.h>使用

12、char *string[]定义的是指针数组,他是一个存放地址的数组。

自我评价

(是否规范完成指定任务,需要改进的地方,与他人合作等。)

在指针方面还是存在一定欠缺,不能清晰地明白那些指示一个地址,哪些指示的是一个值;但在这节课中,向老师学会了画图求解思路的方法。

            其他

学习日志                     姓名:   王瑶           日期: 2017.07.11   

今日学习任务

c语言基础知识学习,包括:指针、指针和变量、指针和数组、指针和字符串等内容

 

日任务完成情况

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

 

本日任务按计划完成:

1、回顾编写字符串插入字符程序与洗牌发牌程序。

2、指针的内存分配,定义、初始化及遍历。

3、指针和变量的关系及指针变量的使用步骤。

4、指针与一维数组的关系及互换使用。

5、字符数组和字符串的区别。

6、以上学习均结合编程,结合以前编写的代码用指针编写,学习编写字符串复制程序、字符串逆序输出程序、及各类指针初始化遍历等程序约8个。

今日开发中遇到的问题汇总

1、使用scanf(%c,&c);输入时会直接跳过输入输出下面的(回车键也算字符)

2、printf(%s\n,str);输出时后面会出现乱码(分配空间比使用的要多,但printf要遇见\0才会结束)

日未解决问题

日开发收获

1、指针是变量的一种,里面是一个地址,通过地址找到所要找的数据,单元的地址就是指针的内容。

2、无论是什么类型的指针都是四个字节。

3、定义什么类型的指针,就指向什么类型的变量。

4、*有两层含义:定义的时候:表示变量是一个指针、     使用的时候:取值。

5、y=*px++//先px地址取值,然后px加加。

6、(*p)++和*p++区别,前者是值加,后者是址加。

7、指针变量的使用步骤:

1定义一个指针

2给指针变量赋地址

3使用指针变量运算

8、char *p;*p指向随机内存,仅为p分配4个字节内存,并未给随机空间分配,不可以使用,p为野指针,指向不能使用的内存空间。

9、char *p=char *)malloc(sizeof(char)*64)//申请64字节内存//malloc只能返回void *类型的首地址,所以需要强制类型转换,需结合#include<stdlib.h>使用。

10、char *ptr;//野指针

ptr="helloword"//合法 指针的赋值

char str[20];//在栈上面分配20个字节内存,str值固定,是一个常指针

str=“helloword//不合法 常量 存放在代码段 有固定地址,是相当于修改一个指针常量

str是常量 不能修改,ptr是变量,可以修改。

11、malloc要结合头文件#include<stdlib.h>使用,strcmp是比较函数,要结合头文件#include<string.h>使用

12、char *string[]定义的是指针数组,他是一个存放地址的数组。

自我评价

(是否规范完成指定任务,需要改进的地方,与他人合作等。)

在指针方面还是存在一定欠缺,不能清晰地明白那些指示一个地址,哪些指示的是一个值;但在这节课中,向老师学会了画图求解思路的方法。

            其他

 

//冒泡排序命令法
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int SIZE;
int big(int x,int y)        //倒序
{
    return (x>y)?1:0;              //条件判断

int less(int x,int y)       //顺序
{
    return (x>y)?0:1;
}
void sort(char **a,int(*p)(int,int))//定义加接地址
{
int i,j;
char *tmp;
    for(i=1;i<SIZE;i++)
{
       for(j=1;j<SIZE+1-i;j++)
   {
   if(p(atoi(a[j]),atoi(a[j+1])))//调用p指向的函数,返回值作为判断
 {
 tmp=a[j];
 a[j]=a[j+1];
 a[j+1]=tmp;
 }
   }
}
}
void print(char **a)
{
int i;
    for(i=1;i<SIZE+1;i++)
{
printf("%s ",a[i]);
}
}
  main(int argc,char *argv[])
{
SIZE=argc-1;
sort(argv,less);//传一个函数地址进去,用函数指针来接
print(argv);
}

学习日志                     姓名:   王瑶           日期: 2017.07.11   

今日学习任务

c语言基础知识学习,包括:指针、指针和变量、指针和数组、指针和字符串等内容

 

日任务完成情况

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

 

本日任务按计划完成:

1、回顾编写字符串插入字符程序与洗牌发牌程序。

2、指针的内存分配,定义、初始化及遍历。

3、指针和变量的关系及指针变量的使用步骤。

4、指针与一维数组的关系及互换使用。

5、字符数组和字符串的区别。

6、以上学习均结合编程,结合以前编写的代码用指针编写,学习编写字符串复制程序、字符串逆序输出程序、及各类指针初始化遍历等程序约8个。

今日开发中遇到的问题汇总

1、使用scanf(%c,&c);输入时会直接跳过输入输出下面的(回车键也算字符)

2、printf(%s\n,str);输出时后面会出现乱码(分配空间比使用的要多,但printf要遇见\0才会结束)

日未解决问题

日开发收获

1、指针是变量的一种,里面是一个地址,通过地址找到所要找的数据,单元的地址就是指针的内容。

2、无论是什么类型的指针都是四个字节。

3、定义什么类型的指针,就指向什么类型的变量。

4、*有两层含义:定义的时候:表示变量是一个指针、     使用的时候:取值。

5、y=*px++//先px地址取值,然后px加加。

6、(*p)++和*p++区别,前者是值加,后者是址加。

7、指针变量的使用步骤:

1定义一个指针

2给指针变量赋地址

3使用指针变量运算

8、char *p;*p指向随机内存,仅为p分配4个字节内存,并未给随机空间分配,不可以使用,p为野指针,指向不能使用的内存空间。

9、char *p=char *)malloc(sizeof(char)*64)//申请64字节内存//malloc只能返回void *类型的首地址,所以需要强制类型转换,需结合#include<stdlib.h>使用。

10、char *ptr;//野指针

ptr="helloword"//合法 指针的赋值

char str[20];//在栈上面分配20个字节内存,str值固定,是一个常指针

str=“helloword//不合法 常量 存放在代码段 有固定地址,是相当于修改一个指针常量

str是常量 不能修改,ptr是变量,可以修改。

11、malloc要结合头文件#include<stdlib.h>使用,strcmp是比较函数,要结合头文件#include<string.h>使用

12、char *string[]定义的是指针数组,他是一个存放地址的数组。

自我评价

(是否规范完成指定任务,需要改进的地方,与他人合作等。)

在指针方面还是存在一定欠缺,不能清晰地明白那些指示一个地址,哪些指示的是一个值;但在这节课中,向老师学会了画图求解思路的方法。

            其他

 


//字符串排序
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int SIZE;
int big(char *x,char *y)        //倒序
{
    if(strcmp(x,y)>0)//条件判断
return 1;
else 
return 0;

int less(char *x,char *y)       //顺序
{
    if(strcmp(x,y)<0)//条件判断
return 1;
else 
return 0;
}
void sort(char **a,int(*p)(char *,char *))//定义加接地址
{
int i,j;
char *tmp;
    for(i=1;i<SIZE;i++)
{
       for(j=1;j<SIZE+1-i;j++)
  {
         if(p(a[j],a[j+1]))//调用p指向的函数,返回值作为判断
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
  }
}
}
void print(char **a)
{
int i;
    for(i=1;i<SIZE+1;i++)
{
printf("%s ",a[i]);
}
}
  main(int argc,char *argv[])
{
SIZE=argc-1;
sort(argv,less);//传一个函数地址进去,用函数指针来接
print(argv);
}

 

学习日志                     姓名:   王瑶           日期: 2017.07.11   

今日学习任务

c语言基础知识学习,包括:指针、指针和变量、指针和数组、指针和字符串等内容

 

日任务完成情况

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

 

本日任务按计划完成:

1、回顾编写字符串插入字符程序与洗牌发牌程序。

2、指针的内存分配,定义、初始化及遍历。

3、指针和变量的关系及指针变量的使用步骤。

4、指针与一维数组的关系及互换使用。

5、字符数组和字符串的区别。

6、以上学习均结合编程,结合以前编写的代码用指针编写,学习编写字符串复制程序、字符串逆序输出程序、及各类指针初始化遍历等程序约8个。

今日开发中遇到的问题汇总

1、使用scanf(%c,&c);输入时会直接跳过输入输出下面的(回车键也算字符)

2、printf(%s\n,str);输出时后面会出现乱码(分配空间比使用的要多,但printf要遇见\0才会结束)

日未解决问题

日开发收获

1、指针是变量的一种,里面是一个地址,通过地址找到所要找的数据,单元的地址就是指针的内容。

2、无论是什么类型的指针都是四个字节。

3、定义什么类型的指针,就指向什么类型的变量。

4、*有两层含义:定义的时候:表示变量是一个指针、     使用的时候:取值。

5、y=*px++//先px地址取值,然后px加加。

6、(*p)++和*p++区别,前者是值加,后者是址加。

7、指针变量的使用步骤:

1定义一个指针

2给指针变量赋地址

3使用指针变量运算

8、char *p;*p指向随机内存,仅为p分配4个字节内存,并未给随机空间分配,不可以使用,p为野指针,指向不能使用的内存空间。

9、char *p=char *)malloc(sizeof(char)*64)//申请64字节内存//malloc只能返回void *类型的首地址,所以需要强制类型转换,需结合#include<stdlib.h>使用。

10、char *ptr;//野指针

ptr="helloword"//合法 指针的赋值

char str[20];//在栈上面分配20个字节内存,str值固定,是一个常指针

str=“helloword//不合法 常量 存放在代码段 有固定地址,是相当于修改一个指针常量

str是常量 不能修改,ptr是变量,可以修改。

11、malloc要结合头文件#include<stdlib.h>使用,strcmp是比较函数,要结合头文件#include<string.h>使用

12、char *string[]定义的是指针数组,他是一个存放地址的数组。

自我评价

(是否规范完成指定任务,需要改进的地方,与他人合作等。)

在指针方面还是存在一定欠缺,不能清晰地明白那些指示一个地址,哪些指示的是一个值;但在这节课中,向老师学会了画图求解思路的方法。

            其他

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值