今日学习任务 | 指针、指针和变量、指针和数组、指针和字符串 |
今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量。)
| 1、基本掌握指针定义与运算 2、基本掌握指针变量的使用步骤 3、了解指针引用数组元素的方法 4、理解字符数组与字符串的区别 |
今日开发中遇到的问题汇总 | 1、(*p1)++, *p1++区别 2、printf(“%s\n”,str);输出时后面会出现乱码(分配空间比使用的要多,但printf要遇见\0才会结束) |
今日未解决问题 | 指针数组的实际运用 |
今日开发收获 | 1、循环获取字符串,先要申请空间,用于存放字符串. 2、& 取地址符 * 取值 Char *p = &a *有两层含义 定义的时候:表示变量是一个指针 使用的时候:取值 3、不管什么类型的指针,长度都是4个字节 什么样的内存可以使用,一定是操作系统分配的 char *ptr 局部变量 未初始化 随机值 内存不能用 4、野指针,指向部内使用的内存空间 5、malloc要结合头文件#include<stdlib.h>使用,strcmp是比较函数,要结合头文件#include<string.h>使用 |
自我评价 (是否规范完成指定任务,需要改进的地方,与他人合作等。) | 在指针方面还是存在一定欠缺,不能清晰地明白那些指示一个地址,哪些指示的是一个值;但在这节课中,向老师学会了画图求解思路的方法。 |
其他 | 无 |
题目:编写一个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");
while(1);
return 0;
}