#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include<stdio.h>
#include <string.h>
void swap(char a,char b)
{
char tmp = a;
a = b;
b = tmp;
}
int main()
{
char *a ;
char *b;
a = malloc(8);
strcpy(a,"GOBLIN");
printf("len a:%d\n",strlen(a));
b = a+strlen(a)-3;
printf("a:%c\n",a[5]);
printf("b:%s\n",a+3);
swap(a[3],a[4]);
printf("c:%s\n",a);
printf("d:%c\n",*b);
*(b++)='\0';
printf("e:%s\n",a);//GOB
printf("f:%d\n",strlen(b));//2
free(a);
system("pause");
return 0;
}
举例:
++a=++b;
执行顺序是:
a=a+1;
b=b+1;
a=b;
后置运算:
举例:
a++=b++;
a=b;
a=a+1;
b=b+1;
再回到你上面的问题:
*a++=*b++;
执行顺序是:
*a;
*b;
*a=*b;
a++;
b++;
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include<stdio.h>
#include <string.h>
void display()
{
int a[]={1,3,5,7,9};
int *p = a;
//printf("a:%d\n",*p++);//1
//printf("a:%d\n",*(p++));//1
//printf("a:%d\n",(*p));//1
//printf("a:%d\n",++(*p));//2
//printf("a:%d\n",*++p);//3
//printf("a:%d\n",*(++p));//3
//printf("a:%d\n",++*p);//2
}
int main()
{
display();
system("pause");
return 0;
}
注意display()函数中的printf语句单独运行的结果!