• joker henxin!


    这个作业属于哪个班级 C语言--网络2011/2012
    这个作业的地址 C博客作业05--指针
    这个作业的目标 学习数组相关内容
    姓名 杨振鹏

    1.本章学习总结

    1.1 指针定义、指针相关运算、指针做函数参数

    • 地址和指针
      直接访问 :通过变量名访问
      int x = 20,y = 1,z = 155;
      printf(“%d”, x);
      间接访问 :通过地址访问
      int *p;
      printf(“%d”, *p);
    • 变量名的定义
      指针变量的定义 :类型名 *指针变量名
      • 指针变量所指向的变量的类型
        int *p; 整形指针 .
        float *p; 浮点型指针 .
        char *p; 字符型指针 .

    1.2 字符指针

    定义字符指针:char *p;
    内容为字符串,同字符数组;
    来输出字符指针的内容:使用printf("%s",p);
    p->str 首地址

    1.3 指针做函数返回值

    • 只有函数本身的类型为指针类型,函数返回值才能为指针。
    • 返回的指针最好不要指向函数内部定义的变量,因为函数内部定义的变量为局部变量,在函数运行结束后,这些变量会自动销毁。

    1.4 动态内存分配

    • 栈区(stack)
    • 堆区(heap)
      一般由程序员分配释放, 若程序员不释放,程序结束时可能由操作系统回收.类似于链表,在内存中的分布不是连续的,它们是不同区域的内存块通过指针链接起来的.一旦某一节点从链中断开,我们要人为的把所断开的节点从内存中释放.
      由编译器自动分配释放 ,存放函数的参数值,局部变量的值等,内存的分配是连续的,类似于平时我们所说的栈。
    #include<stdio.h>
    #include<string.h>
    int main()
    {
    	char* s1;
    	char* s2;
    	s1 = (char*)malloc(500000 * sizeof(char));//申请500000个char单位的空间;
    	s2 = (char*)malloc(6000000 * sizeof(char));//申请6000000个char单位的空间;
    	free(s1);
    	free(s2);
    	return 0;
    }
    

    1.5 指针数组及其应用

    • 二维数组:一旦定义,那么每个字符数组的字符串最大长度和首地址都不能改变
    • 字符指针数组:比二维字符数组更加灵活,其指向的每个字符串的首地址可以改变,字符串最大长度也可以改变。

    1.6 二级指针

    int p
    其中,p和p都表示地址,p指向p,而*p指向内容。
    p则表示内容。

    1.7 行指针、列指针

    • 行指针:指的是一整行,不指向具体元素。
    • 列指针:指的是一行中某个具体元素。
      int a[3][4]
    • a即是它的行指针,a+0表示第0行的地址,a+1表示第1行地址
    • 或者可以说成&a[0]表示第0行的地址,&a[1]表示第1行的地址
    • 那么a[0]+0,a[0]+1就表示第1行第1列的地址,第1行第2列地址
    • a[1]+0,a[1]+1就表示第2行第1列地址,第2行第2列地址

    2.PTA实验作业

    2.1说反话

    2.1.1伪代码

    2.1.2代码截图

    2.1.3没有同学

    2.2 字符串的冒泡排序

    2.2.1伪代码

    2.2.2代码截图

    2.2.3没有同学

  • 相关阅读:
    数据库范式
    SQL基础
    JAVA流
    response.getWriter()和jsp中的out对象的区别
    JAVA排序(冒泡,直接选择,反转)
    Collections类常用方法
    JAVA集合
    JAVA面向对象(重载,重写 常用的 toString/equals)
    Java面向对象一(封装 继承 多态 类 对象 方法)
    JAVA基础
  • 原文地址:https://www.cnblogs.com/RocEye/p/14198654.html
Copyright © 2020-2023  润新知