直接上代码:

(1).交换两参数的值

#include <stdio.h>

int main()
{
    int a = 10,b = 5;
    a^=b^=a^=b;
    printf("a=%d,b=%d\n",a,b);

    return 0;
}

  //输出结果 a = 5,b = 10;

 

(2).递归实现字符串逆序输出#include <stdio.h>

void fun(char *str)
{
    if(*(str+1)){
      fun(str);
      printf("%c",*str);
    }
}

int main()
{
    char *p = "hello world";
    fun(p);
    return 0;
}

 这就是利用递归函数实现的字符串逆序输出。

 

3.数组与指针

#include <stdio.h>
#define M 2
int main() {
   printf("%s\n",&M["\012asd"]);
  return 0; }

   输出的答案是  “sd”;

  1.”\012asd”是一个指针;  2.a[5] 完全等价于 5[a],3. 如果我们把 “\012asd”看成是 指针 p 的话,我们就可以把

&M[“\012asd”]看成是一个  &p[2] ,直接跳过第一个字符’\012’和第二个字符’a’,所以应该输出”sd”。


4.do……while()的妙用

#include <stdio.h>
#define FUN(a,b) do{printf("%d\n",a);a++}while(b>a)

int main()
{
    int x = 2,y = 10;
    FUN(x,y);//你可以尝试着把do...while(),修改成while(),或者修改成for()循环。你就会发现他的妙处。
    return 0;
}

 你可以尝试着把do…while(),修改成while(),或者修改成for()循环。你就会发现他的妙处。 

版权声明:本文为hukblog原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/hukblog/p/9885886.html