Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1177165
  • 博文数量: 573
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 66
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-28 16:21
文章分类

全部博文(573)

文章存档

2018年(3)

2016年(48)

2015年(522)

分类: C/C++

2015-12-02 17:13:10


点击(此处)折叠或打开

  1. #include <string.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>

  4. char * str = "abcde";
  5. //char * p;
  6. //char p[100] = "abcde";
  7. //char p[100];
  8. //const int a = 12;

  9. /*
  10. *函数功能 : 比n大的所有的2的幂的数,找出其中最小的一个
  11. */
  12. int fun(int n)
  13. {
  14.         int i = 0;
  15.         for(i=1; i<=32; i++)
  16.         {
  17.                 if(((1<<i) >= n) && ((1<<(i-1)) < n))
  18.                 {
  19.                         return (1<<i);
  20.                 }
  21.         }
  22. }


  23. /*
  24. 功能:求1到n之间的所有正整数和
  25. 不用if else 的递归版本
  26. */
  27. int function(int n)
  28. {
  29.     int sum;
  30.     n && (sum = n+function(n-1));
  31.     return sum;
  32. }

  33. /*
  34. 功能:求1到n之间的所有正整数和
  35. 最精简版本,值使用一行代码来实现
  36. */
  37. int func(int a, int * sum)
  38. {
  39.     return a&&(*sum+=a)&&func(a-1,sum);
  40. }

  41. /*
  42. 功能:求1到n之间的所有正整数和
  43. 最普通版本
  44. */
  45. int fun(int n)
  46. {
  47.     if(n == 1)
  48.         return 1;
  49.     else
  50.         return(n + fun(n-1));
  51. }

  52. /*
  53. &a[0] 是数组a的首地址,即第一个元素的地址, &a[1]是第二个元素的地址,
  54. 同理,&a[-1]就是上一个元素的地址,以&a[0]为准,向前移动typeof(a[0])个字节
  55. 这里表示取va_list最后的元素的地址
  56. */


  57. int main(int argc, char * * argv)
  58. {
  59.         //char * str = "abcde";
  60.         //char * p = "abcde";
  61.         //static int a = 1;
  62.         int ret = -1;
  63.         
  64.         ret = fun(5);
  65.         printf("ret=[%d]\n", ret);
  66.         
  67.         int a[2][10] = {
  68.             {0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
  69.             {10, 11, 12, 13, 14, 15, 16, 17, 18, 19},};

  70.         int (*p)[10];
  71.         int (*q)[10];
  72.         
  73.         int * ptr;
  74.         
  75.         p = a;
  76.         p = p + 1;
  77.         q = p[-1];
  78.         
  79.         ptr = *(q+1); //对数组指针取*号,得到的也是一个指针(指向数组元素的类型的指针)
  80.         
  81.         printf("q[0][0]=[%d]\n", ((int *)q)[0]);
  82.         printf("q[0][1]=[%d]\n", ((int *)q)[1]);
  83.         printf("q[0][2]=[%d]\n", ((int *)q)[2]);

  84.         printf("q[0][0]=[%d]\n", q[0][0]);
  85.         printf("q[0][1]=[%d]\n", q[0][1]);
  86.         printf("q[0][2]=[%d]\n", q[0][2]);

  87.         printf("ptr[0]=[%d]\n", ptr[0]);
  88.         printf("ptr[1]=[%d]\n", ptr[1]);
  89.         printf("ptr[2]=[%d]\n", ptr[2]);
  90.         
  91.         char * p_str = "wangxiancai";
  92.         
  93.         printf("p_str=[%s]\n", p_str);
  94.         
  95.         *(p_str+4) = 'X';
  96.         
  97.         printf("p_str=[%s]\n", p_str);

  98.         return 0;
  99. }

阅读(1123) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~