今日学习任务 |
今日首先完善了昨日的习题:利用指针来实现字符串的倒置 复习了指针的几个重要的知识点:函数与指针,指向指针的指针以及命令行参数 |
今日任务完成情况 |
今日主要是围绕着指针与函数这方面的内容进行学习,基本上所要要求的内容都已完成,除了几个难度较大的问题没有解决 |
今日开发中的问题 |
Int *(*(*p)(int))[10]与Int*(*(*array[5]) ( ) ) ( )的意义 各种指针的含义及其地址的表示 |
指向指针的指针有些难度,
命令行的使用
今日未解决问题对指向指针的指针的使用还存在不少的问题
命令行参数也是第一次遇见
今日开发收获知道了各种表示的指针其地址和表示意义
学习了如何使用指针函数
知道了下述的程序存在的问题及其修改方法
#include<stdio.h>
void InitMemory(char *s)
{
s = (char*)malloc(sizeof(char) *64); //向操作系统申请64个字节
}
int main()
{
char *ptr= NULL;
InitMemory(ptr);
strcpy(ptr, "helloworld");
printf("%s\n",ptr);
while (1);
return 0;
}
自我评价
随着学习进程的深入,我己经逐渐地熟悉了C程序的编译和改错方法,同时今天也意识到了在指针这方面我还存在着些许问题
使用命令行参数来实现字符串排序
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#defineSIZE 3
void sort(char *string[], intlength)
{
int i, j;
char *t;
for (j =0; j<length - 1;j++)
{
for (i =0; i<length - j -1; i++)
{
if(strcmp(string[i], string[i +1])>0)
{
t= string[i];
string[i] = string[i +1];
string[i +1] = t;
}
}
}
}
int main(int argc, char *argv[])
{
int i;
sort(argv,argc - 1);
printf("Thestring after sort:\n");
for (i =1; i<argc; i++)
{
printf("%s",argv[i]);
}
while (1);
return 0;
}