1.定义一个"简单宏"或宏函数,实现两个数交换。
#include<stdio.h>
#include<string.h>
#define temp(x,y) do{int t;\
{t=x;x=y;y=t;printf("x=%d y=%d\n",x,y);}\
}while(0)
int main(int argc, const char *argv[])
{
int a=10,b=5;
int c=4,d=8;
temp(a,b);
temp(c,d);
return 0;
}
2.定义字符类型指针,指针指向n个连续堆区内存,输入,计算字符串长度
定义函数,实现内存申请
定义函数,计算字符串长度
定义函数释放内存。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char *create(int n);
void input(int n,char *p);
void length(char *p);
char *free_space(char *p);
int main(int argc, const char *argv[])
{
int n;
printf("please enter n:");
scanf("%d",&n);
char *p=create(n);
input(n,p);
length(p);
p=free_space(p);
return 0;
}
char *create(int n)
{
char *p=(char*)malloc(sizeof(char)*n);
if(NULL==p)
return NULL;
return p;
}
void input(int n,char *p)
{
for(int i=0;i<n;i++)
{
scanf("%c",p+i);
}
}
void length(char *p)
{
int i=0,len;
while(*(p+i)!='\0')
{i++;}
len=i-1;
printf("len=%d\n",len);
}
char *free_space(char *p)
{
if(NULL==p)
return NULL;
free(p);
p=NULL;
return p;
}
3、思维导图