苏嵌//2018.7.17

学习日志                                                                                        姓名:    日期:2018.7.17

 

 

 

 

今日学习任务

 

1、 熟练掌握指针的定义与使用;(对应内存空间与指向内存空间)

2、 熟练掌握野指针及如何防止野指针;(消灭野指针)

3、 熟练掌握多维指针的使用;(n维指针)

4、 熟练掌握字符串的操作;(实现并使用字符串处理函数)

今日任务完成情况

 

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

今日任务基本完成,详细代码见附件

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

 

1、对于p++和(*p)++的计算关键在于前者是p对应的内存空间的值加1(步长)(4),后者是p指向的内存空间的值加一(值)。

2、

 

今日未解决问题

 

今日开发收获

在使用指针时,要养成良好的习惯:

  1. 当不确定指针指向哪个空间时,用NULL
  2. 当要向指向空间赋值时,用malloc分配空间
  3. 检查是否赋值成功。
  4. 清除空间,释放空间

 

取内容(*)和取地址(&)

指针是一个变量,用来保存地址;由于地址步长长短不一,需要有不同类型的指针,不同类型指针有不同的步长。

 

自我评价

 

(是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等)

 

 

任务基本完成,对于指针的具体的使用还需要多加练习。

其他

 

1 #include<stdio.h>

  2 int main()

  3 {

  4     printf("int * = %d\n",sizeof(int *));

  5     printf("float * = %d\n",sizeof(float *));

  6     printf("double * = %d\n",sizeof(double *));

  7     printf("long * = %d\n",sizeof(long *));

  8     printf("short * = %d\n",sizeof(short *));

  9 }

 

 

 

 

1 #include <stdio.h>

  2 #include <stdlib.h>

  3 #include <string.h>

  4

  5 #define MAX_LEN sizeof(char) * 100

  6 int main()

  7 {

  8     char *ptr = (char *)malloc(MAX_LEN);

  9     char *s = (char *)malloc(MAX_LEN);

 10

 11     char *p_temp=ptr;

 12     char *s_temp=s;

 13

 14     int i;

 15     int max = 0;

 16     int count = 0;

 17

 18     printf("please input string:\n");

 19     scanf("%s",ptr);

 20     p_temp = ptr;

 21

 22    if(ptr == NULL || s == NULL)

 23     {

 24         printf("malloc error!\n");

 25         exit(1);

 26     }

 27     memset(ptr,0,MAX_LEN);

 28     memset(s,0,MAX_LEN);

 29

 30     while(*p_temp != '\0')

 31     {

 32         if((*p_temp >= '0') && (*p_temp <= '9'))

 33         {

 34             count++;

 35

 36         }

 37         if(count > max)

 38         {

 39             max = count;

 40             s_temp = s;

 41             s = p_temp - count;

 42             for(i = 0;i < count;i++)

 43             {

 44                 *(s + i) = *(p_temp + i);

 45             }

 46             *(s + i)= '\0';

 47         }

 48         else

 49         {

 50             count = 0;

 51         }

 52         p_temp++;

 53     }

 54

 55     printf("the max count is:%d\n",max);

 56     printf("%s\n",s_temp);

 57

 58     free(ptr);

 59     free(s);

 60     ptr = NULL;

 61     s = NULL;

 62 }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值