数据结构学习记录

思维导图

 数据结构练习

定义一个"简单宏"或宏函数,实现两个数交换
  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <stdlib.h>
  4 #define Change(x,y) do{ int temp=x; x=y; y=temp;}while(0)
  5 int main(int argc, const char *argv[])
  6 {
  7     int a=100;
  8     int b=200;
  9     printf("before change : a=%d b=%d\n",a,b);
 10     Change(a,b);
 11     printf("after change : a=%d b=%d\n",a,b);
 12 
 13     return 0;
 14 }        
 效果图

定义字符类型指针,指针指向n个连续堆区内存,输入,计算字符串长度
主函数
  1 #include "homework_head.h"                                                                                                     
  2 int main(int argc, const char *argv[])
  3 {
  4     int n;
  5     printf("请输入申请内存的个数");
  6     scanf("%d",&n);
  7     char *p=Creat(n);
  8     printf("请输入要计算的字符串");
  9     scanf("%s",p);
 10     int length=Strlen(p);
 11     printf("%d\n",length);
 12     p=free_space(p);
 13     return 0;
 14 }
 自定义函数
  4  * @param [ in] 申请的大小
  5  * @param [out]  
  6  * @return      字符数组
  7  */
  8 char *Creat(int n)
  9 {
 10     char *p=(char *)malloc(sizeof(char)*n);
 11     if(p==NULL)
 12         return NULL;
 13     return p;
 14 }
 15 
 16 /*
 17  * function:    计算字符串长度
 18  * @param [ in] 字符串首地址
 19  * @param [out] 
 20  * @return      字符串长度
 21  */
 22 int Strlen(char *p)
 23 {
 24     int num=0;
 25     for(int i=0;*(p+i)!='\0';i++)
 26     {       
 27         num++;
 28     }
 29     return num;
 30 }
 31 
 32 
 33 /*                                                                                                                             
 34  * function:    释放内存
 35  * @param [ in] 指针
 36  * @param [out] 
 37  * @return      NULL
 38  */
 39 char *free_space(char *p)
 40 {
 41     if(p==NULL)
 42         return NULL;
 43     free(p);
 44     p=NULL;
 45     return NULL;
 46 }   
 47    
头文件
  1 #ifndef __HOMEWORK_HEAD_H__
  2 #define __HOMEWORK_HEAD_H__
  3 
  4 
  5 #include <stdio.h>
  6 #include <string.h>
  7 #include <stdlib.h>
  8 
  9 char *Creat(int n);
 10 int Strlen(char *p);
 11 char *free_space(char *p);
 12 
 13 
 14 
 15 #endif
 16 
 17 
 18                                                                                                                                
              
效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值