苏嵌暑期实训----day3


姓名:祝俊宝                            日期:2018.07.11

今日学习任务

学习指针

1、指针定义

2、指针运算

3、指针使用步骤

4、指针数组

等等

今日任务完成情况

基本代码练习均完成,但指针概念有点抽象,有几个稍复杂的习题还未解决,如字符串逆序输

出,字符排序等。

今日开发中遇到的问题汇总 在对指针的使用过程中,常出现野指针,指针指向错误,内存越界等问题
今日未解决问题 字符串逆序输出、
今日开发收获

学习了关于指针的一系列内容

1、变量的一种,里面是一个地址,通过地址找到相应的数据

2、不管什么类型的指针都只占4个字节

3、& 取地址符

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

4、int类型的指针保存的内容为int型,char型指针保存的内容为char型

5、int *p1, a;     //p1为指针变量,a为int型常量

6、实例

       指针运算:

              intx = 3 ,y = 0 , *px = &x;

              y= *px + 5;    //y = 8;    即 y = x + 5

              y= ++*px;      //y = 4   即 y = ++x (先*px自加,再赋值给y,此时x = 4)

            y= *px++;     //y = 4    即 y = x++  (先把x的值赋给y,然后指针自加,此时指针不再指向x)

实例:利用指针运算实现函数strcpy

7、指针的使用步骤

1)      定义指针变量

2)      ..

3)      ..

8、只有操作系统分配的内存才可以使用,

 int a;

char *p = &a;操作系统分配4个字节,指针使用合理

又如:

char *ptr; //局部变量 未初始化 是随机值 内存不能使用,ptr称为野指针,即指向不 //能使用的内存空间的指针

9、malloc:申请(合法的)内存返回值是void*

       char*ptr = (char *)malloc(sizeof(char) * 64);

等等

自我评价 今天状态有点迷,希望即使调整。
其他 老师讲课有点快,希望到时候可以把课件和上课的代码发一下
作业  #include<stdio.h>                                                                                                                                                                                       
  2 #include<string.h>
  3 
  4 int main()
  5 {
  6     char arr[] = "how are you";
  7 
  8     int lenth = strlen(arr);
  9 
 10     printf("%s\n",arr);
 11 
 12     Swap(arr,(arr + lenth - 1));
 13 
 14     SwapWord(arr,lenth);
 15 
 16     printf("%s\n",arr);
 17 
 18     return 0;
 19 }

 20 

//字符交换函数

 21 void Swap(char *p1,char *p2)
 22 {
 23     while(p1 <= p2)
 24     {
 25         char inter;
 26 
 27         inter = *p1;
 28 
 29         *p1 = *p2;
 30 
 31         *p2 = inter;
 32 
 33         p1++;
 34 
 35         p2--;
 36     }
 37 }

 38 

//单词交换函数

 39 void SwapWord(char arr[],int len)
 40 {
 41     int i = 0, status = 0;
 42     char *p1 = NULL;
 43     char *p2 = NULL;
 44 
 45     for(i = 0; i < len; i++)
 46     {
 47         if(arr[i] != ' ' && status == 0)
 48         {
 49             p1 = &arr[i];
 50             status = 0;
 51         }
 52 
 53         if(arr[i] = ' ' && status == 1)
 54         {
 55             p2 = &(arr[i - 1]);
 56             status = 0;

 57             Swap(p1,p2);

58         }
 59     }
 60 
 61     p1 = p1;
 62     p2 = &arr[len - 1];
 63     Swap(p1,p2);
 64 }       

猜你喜欢

转载自blog.csdn.net/zjb231425/article/details/81001195