今日学习任务 | 对指针相关的知识进行学习和运用 |
今日任务完成情况 (详细说明本日任务是否按 计划完成,开发的代码量) | 按照计划和要求,完成当天的学习任务。 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;
}