今日学习任务 | 学习指针 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 } |
苏嵌暑期实训----day3
最新推荐文章于 2024-04-22 17:01:12 发布