首页 技术 正文
技术 2022年11月9日
0 收藏 605 点赞 5,048 浏览 1962 个字

1.字符串输出输入函数

  读入字符串的方法:

    1) scanf 特点:不能接收空格

    2) gets 特点:可以接受含有空格的字符串 ,不安全

    3) fgets(); 特点:可以帮我们自动根据数组的长度截取适当的长度保存,安全

            如果输入的长度大于数组的长度,自动将数组最后一个元素保存为\0

           如果输入的长度小于数组的长度,会自动先保存\n,再保存\0   使用格式:fgets(ch,sizeof(ch),stdin);

  输出字符串的方法:

    1) printf() %s   缺点:不能自动换行

    2) puts() 特点:  可以自动换行

    3) fputs()特点:不可以的自动换行

     使用格式:fputs(ch,stdout); //stdout表示输出

2.const修饰符的使用 

  作用:const作用可以把修饰的变量变成只读的(常量)
  1、修饰变量
    const int a=23;
    int const a = 23;  

  2、修饰指针
    const int *p; //指向可变 ,值不能变
    int const *p; //同上
    int * const p; //指向不可变,值可变
    const int* const p;// 指向和值都不能变  

  技巧:
    const 在 * 的左侧 : 指向可变,值不能变
    const 在 * 的右侧 :指向不可变 值可变

    const 在 * 的两侧 :指向和值都不能变

3、C语言中的内存管理分配.五大区
  内存分为5大区域
  栈区 — 存放局部变量,临时变量
  堆区 — 程序运行过程中,动态分配的内存
  BSS区– 未初始化的全局变量和静态变量
  数据段 (常量区)– 已经初始化的全局变量和静态变量
  代码段 — 源码代码程序编译产生的二进制数据

4.动态内存管理 

1) malloc
  (void *)malloc(n) //动态的向内存申请连续的n个字节 返回的是新申请的内存空间的首地址
  int *p = (int *)malloc(100); //p是在栈区 malloc(100) 在堆区
  malloc不会把新申请的空间初始化
  memset(p,’0′,100); //全部初始化为0

2) calloc
  int *p = (int *)calloc(5,4); //申请5个长度为4的空间
  calloc可以把新申请的空间初始化0

3) realloc
  为已经存在的空间扩展大小
  int *p = (int *)realloc(p,size);

4) free
  释放我们指定的内存空间
  free(p); //p是我们新申请的内存单元 free后,p是一个野指针
  如果不释放,造成内存的泄露

5.指针和函数之间的关系
  1)返回值是指针的函数 :指针函数
  char * getday(){
    return “星期一”;
  }

2)函数指针
  指向函数的指针
  格式:返回值 (*指针变量名)(函数的参数);
  int sum(int a,int b){
    return a+b;
  }

定义:
  格式一:int (*p1)(int a,int b); // 函数指针p1 只能指向返回值是int类型,并且有两个int 类型参数的函数。
      p1 = sum;

  格式二:int (*p2)(int,int);
      p2 = sum;

  格式三:int(*p3)(int a, int b) = sum;

6. 1、什么是结构体?

  答:若干个相同或者不同类型的数据组成的新的构造类型

  2、定义格式:
  struct 结构体名{
  成员列表;
  };

  3、定义结构体变量。
  struct stu{
    int age;
  }stu1,stu2;

  //匿名结构体
  struct{
    int model;
  }s1;

  //先定义结构体,后定义变量
    struct stu stu3;

  4、初始化结构体变量
    a. 定义结构体同时初始化:
      struct stu{
        int age;
        char name[20];
       }stu1={23,”sss”};

    b. 先定义结构体变量的时候初始化
      struct stu stu3={18,”sb”};

    c. 先定义结构体变量,后初始化
      struct stu stu4;
      strcpy(stu4.name,”xxxx”);//stu4.name=”xxx”;

  5.结构体存储空间计算
    结构体在内存中占用的存储空间是 所有元素占用空间之和(考虑对齐)
    1.逐个元素对齐(下个元素与上个元素对齐)
    2.整体对齐(最后的和能单独整除所有元素)
    3.如果是数组,使用的是基本类型来对齐

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,129
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,601
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,444
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,218
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,852
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,940