2018.7.11学习日志

学习日志

今日学习任务

对指针相关的知识进行学习和运用

今日任务完成情况

(详细说明本日任务是否按

计划完成,开发的代码量)

按照计划和要求,完成当天的学习任务。

1、在老师的指点下,学习讨论前日布置的作业,进一步改进自己的代码。                                                            

2、指针的初介绍和范例。(认识指针是什么?起什么作用?指针的运算符是什么?)

3、指针和变量之间的关系,判断研究代码运行的结果。

4、(*p1)++是指x的内容加1;*p1++是先求*p1的值(x),然后再p1++,指向下一个元素,不再指向x。

5、指针变量的合法赋值,申请内存(通过malloc,其返回值是void*,用强制类型转换将其返回值转换为char *)。

6、在学习指针的基础知识之后,将昨天布置的作业(用数组形式实现在字符串中插入一个字符)修改为用指针形式实现在字符串中插入一个字符,现学现用,举一反三。

7、编写一个字符串逆序的代码(实现正着输入一个字符串,使它反着输出的功能。)

8、指针和数组的关系。

9、字符数组跟字符串的区别。

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

思考(*p1)++,*p1++之间的区别。

利用指针运算实现库函数strcpy。

今日未解决问题

暂无。

课后作业:

编写一个C函数,将“I am from shanghai”倒置为“shanghai from am I”,即将句子中的单词位置倒置,而不改变单词内部结构。

今日开发收获

知道了指针也是变量的一种,里面是一个地址,通过这个地址找到要找的数据。它的实质是:单元的地址就是指针内容。&是取地址的运算符,*是用来表示指针运算符的,是取值的运算符。不管是什么类型的指针,它的长度都是4个字节(在32位的操作系统之中)。指针和指针之间是可以相互赋值的。

*的两层含义:1、定义时表示变量是一个指针。2、使用时表示取值的意思。

字符可以直接进行复制,字符串不可以。

其他

别害怕顾虑,想到就去做,这世界就是这样,当你把不敢去实现梦想的时候梦想就会离你越来越远,当你勇敢地去追梦的时候,全世界都会来帮你~~

附:

编写一个C函数,将“I am from shanghai”倒置为“shanghai from am I”,即将句子中的单词位置倒置,而不改变单词内部结构。

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


int main()
{
    char *str[] = { "I", "am","from","shanghai" ,NULL};
    int i = 0;
    int j = 0;
    int len  = 0;
    char *temp;
    while (str[i] != NULL)
    {
        i++;
        len++;
    }
    for(i = 0, j = len - 1; j  > i; i++,j--)
    {
        temp =*(str+i);
        *(str+i) = *(str+j);
        *(str+j) = temp;
    }
    for(i = 0; i < len; i++)
    {
        printf("%s ", *(str+i));
    }
    printf("\n");


    return 0;
}

猜你喜欢

转载自blog.csdn.net/LemonM/article/details/80994582