学习日志 姓名: 徐雪 日期: 2017.07.11
今日学习任务 | 指针,指针与变量,数组,字符串 |
今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量。)
| 今日任务已按计划完成。在老师的指导下编写了 洗牌发牌,字符数组中在指定位置插入字符(指针方法),用指针运算实现库函数strcpy,倒序输出一个字符串,字符串排序等程序
|
今日开发中遇到的问题汇总 | char *string[]={"i love china","i am"} string是数组,char*,所以string是指针数组,里面每个元素都是指针,输出用printf("%s\n",string[1]);或者printf("%s\n",*string);
|
今日未解决问题 | 无 |
今日开发收获 | 1不管什么类型的指针长度都是4字节; 2指针变量使用步骤:定义指针 给指针变量赋值 使用指针变量运算; 3char *ptr;//野指针:指向不能使用的内存空间; 4char *ptr=(char *)malloc(sizeof(char)*64); //申请合法内存 malloc有返回值 ,返回这段内存的首地址 为void *类型,所以需要强制类型转换; 5 str是常量 不能修改ptr是变量 可以修改; 6 int *p1=(int*)(&a+1);//强制类型转换 &a表示数组地址,整个数组 加了20字节 p1指向最后一个元素后一个元素 int *p2=(int*)((int)a+1);//a是数组名,首元素地址 强制int 若0x100 p2:0x101 7 栈空间,可读可写;
|
自我评价 (是否规范完成指定任务,需要改进的地方,与他人合作等。) | 关于指针的编程能力较差,一些注意点在写代码的时候经常忘记;及时弄懂讲过的程序。日后需要多加练习。 |
其他 | 无 |
题目:编写一个c函数,将“I am from shanghai”倒置为“shanghai from am I”,即将句子中的单词位置倒置,而不改变单词内部结构
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SIZE 4
int main()
{
int i;
char t[20];
char *str[SIZE]={0};
printf("input:\n");
for(i=0;i<SIZE;i++)
{
str[i]=(char*)malloc(sizeof(char)*30);
if(NULL==str[i])
{
printf("malloc failure!\n");
return -1;
}
scanf("%s",str[i]);
}
for(i=0;i<SIZE/2;i++)
{
strcpy(t,str[i]);
strcpy(str[i],str[SIZE-i-1]);
strcpy(str[SIZE-i-1],t);
}
printf("the last string:\n");
for(i=0;i<SIZE;i++)
{
printf("%-10s",str[i]);
}
while(1);
return 0;
}