C语言基础知识学习日志—2018.07.11



学习日志                     姓名:   王瑶           日期: 2017.07.11   

今日学习任务

c语言基础知识学习,包括:指针、指针和变量、指针和数组、指针和字符串等内容

 

日任务完成情况

详细说明本日任务是否按计划完成,开发的代码量。)

 

本日任务按计划完成:

1、回顾编写字符串插入字符程序与洗牌发牌程序。

2、指针的内存分配,定义、初始化及遍历。

3、指针和变量的关系及指针变量的使用步骤。

4、指针与一维数组的关系及互换使用。

5、字符数组和字符串的区别。

6、以上学习均结合编程,结合以前编写的代码用指针编写,学习编写字符串复制程序、字符串逆序输出程序、及各类指针初始化遍历等程序约8个。

今日开发中遇到的问题汇总

1、使用scanf(%c,&c);输入时会直接跳过输入输出下面的(回车键也算字符)

2、printf(%s\n,str);输出时后面会出现乱码(分配空间比使用的要多,但printf要遇见\0才会结束)

日未解决问题

日开发收获

1、指针是变量的一种,里面是一个地址,通过地址找到所要找的数据,单元的地址就是指针的内容。

2、无论是什么类型的指针都是四个字节。

3、定义什么类型的指针,就指向什么类型的变量。

4、*有两层含义:定义的时候:表示变量是一个指针、     使用的时候:取值。

5、y=*px++//px地址取值,然后px加加。

6、(*p)++*p++区别,前者是值加,后者是址加。

7、指针变量的使用步骤:

1定义一个指针

2给指针变量赋地址

3使用指针变量运算

8char *p;*p指向随机内存,仅为p分配4个字节内存,并未给随机空间分配,不可以使用,p为野指针,指向不能使用的内存空间。

9char *p=char *)malloc(sizeof(char)*64)//申请64字节内存//malloc只能返回void *类型的首地址,所以需要强制类型转换,需结合#include<stdlib.h>使用。

10char *ptr;//野指针

ptr="helloword"//合法 指针的赋值

char str[20];//在栈上面分配20个字节内存,str值固定,是一个常指针

str=helloword//不合法 常量 存放在代码段 有固定地址,是相当于修改一个指针常量

str是常量 不能修改,ptr是变量,可以修改。

11、malloc要结合头文件#include<stdlib.h>使用,strcmp是比较函数,要结合头文件#include<string.h>使用

12、char *string[]定义的是指针数组,他是一个存放地址的数组。

自我评价

(是否规范完成指定任务,需要改进的地方,与他人合作等。)

在指针方面还是存在一定欠缺,不能清晰地明白那些指示一个地址,哪些指示的是一个值;但在这节课中,向老师学会了画图求解思路的方法。

            其他

 

  1. 题目:编写一个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;

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
城市应急指挥系统是智慧城市建设的重要组成部分,旨在提高城市对突发事件的预防和处置能力。系统背景源于自然灾害和事故灾难频发,如汶川地震和日本大地震等,这些事件造成了巨大的人员伤亡和财产损失。随着城市化进程的加快,应急信息化建设面临信息资源分散、管理标准不统一等问题,需要通过统筹管理和技术创新来解决。 系统的设计思路是通过先进的技术手段,如物联网、射频识别、卫星定位等,构建一个具有强大信息感知和通信能力的网络和平台。这将促进不同部门和层次之间的信息共享、交流和整合,提高城市资源的利用效率,满足城市对各种信息的获取和使用需求。在“十二五”期间,应急信息化工作将依托这些技术,实现动态监控、风险管理、预警以及统一指挥调度。 应急指挥系统的建设目标是实现快速有效的应对各种突发事件,保障人民生命财产安全,减少社会危害和经济损失。系统将包括预测预警、模拟演练、辅助决策、态势分析等功能,以及应急值守、预案管理、GIS应用等基本应用。此外,还包括支撑平台的建设,如接警中心、视频会议、统一通信等基础设施。 系统的实施将涉及到应急网络建设、应急指挥、视频监控、卫星通信等多个方面。通过高度集成的系统,建立统一的信息接收和处理平台,实现多渠道接入和融合指挥调度。此外,还包括应急指挥中心基础平台建设、固定和移动应急指挥通信系统建设,以及应急队伍建设,确保能够迅速响应并有效处置各类突发事件。 项目的意义在于,它不仅是提升灾害监测预报水平和预警能力的重要科技支撑,也是实现预防和减轻重大灾害和事故损失的关键。通过实施城市应急指挥系统,可以加强社会管理和公共服务,构建和谐社会,为打造平安城市提供坚实的基础
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值