• 吴裕雄--天生自然C语言开发:指针


    #include <stdio.h>
     
    int main ()
    {
       int  var1;
       char var2[10];
     
       printf("var1 变量的地址: %p
    ", &var1  );
       printf("var2 变量的地址: %p
    ", &var2  );
     
       return 0;
    }
    #include <stdio.h>
     
    int main ()
    {
       int  var = 20;   /* 实际变量的声明 */
       int  *ip;        /* 指针变量的声明 */
     
       ip = &var;  /* 在指针变量中存储 var 的地址 */
     
       printf("Address of var variable: %p
    ", &var  );
     
       /* 在指针变量中存储的地址 */
       printf("Address stored in ip variable: %p
    ", ip );
     
       /* 使用指针访问值 */
       printf("Value of *ip variable: %d
    ", *ip );
     
       return 0;
    }

    #include <stdio.h>
     
    int main ()
    {
       int  *ptr = NULL;
     
       printf("ptr 的地址是 %p
    ", ptr  );
     
       return 0;
    }
    #include <stdio.h>
    
    const int MAX = 3;
    
    int main ()
    {
       int  var[] = {10, 100, 200};
       int  i, *ptr;
    
       /* 指针中的数组地址 */
       ptr = var;
       for ( i = 0; i < MAX; i++)
       {
    
          printf("存储地址:var[%d] = %x
    ", i, ptr );
          printf("存储值:var[%d] = %d
    ", i, *ptr );
    
          /* 移动到下一个位置 */
          ptr++;
       }
       return 0;
    }
    #include <stdio.h>
    
    const int MAX = 3;
    
    int main ()
    {
       int  var[] = {10, 100, 200};
       int  i, *ptr;
    
       /* 指针中最后一个元素的地址 */
       ptr = &var[MAX-1];
       for ( i = MAX; i > 0; i--)
       {
    
          printf("存储地址:var[%d] = %x
    ", i-1, ptr );
          printf("存储值:var[%d] = %d
    ", i-1, *ptr );
    
          /* 移动到下一个位置 */
          ptr--;
       }
       return 0;
    }
    #include <stdio.h>
    
    const int MAX = 3;
    
    int main ()
    {
       int  var[] = {10, 100, 200};
       int  i, *ptr;
    
       /* 指针中第一个元素的地址 */
       ptr = var;
       i = 0;
       while ( ptr <= &var[MAX - 1] )
       {
    
          printf("Address of var[%d] = %x
    ", i, ptr );
          printf("Value of var[%d] = %d
    ", i, *ptr );
    
          /* 指向上一个位置 */
          ptr++;
          i++;
       }
       return 0;
    }
    #include <stdio.h>
     
    int main ()
    {
       int  var;
       int  *ptr;
       int  **pptr;
    
       var = 3000;
    
       /* 获取 var 的地址 */
       ptr = &var;
    
       /* 使用运算符 & 获取 ptr 的地址 */
       pptr = &ptr;
    
       /* 使用 pptr 获取值 */
       printf("Value of var = %d
    ", var );
       printf("Value available at *ptr = %d
    ", *ptr );
       printf("Value available at **pptr = %d
    ", **pptr);
    
       return 0;
    }
    #include <stdio.h>
    #include <time.h>
     
    void getSeconds(unsigned long *par);
    
    int main ()
    {
       unsigned long sec;
    
    
       getSeconds( &sec );
    
       /* 输出实际值 */
       printf("Number of seconds: %ld
    ", sec );
    
       return 0;
    }
    
    void getSeconds(unsigned long *par)
    {
       /* 获取当前的秒数 */
       *par = time( NULL );
       return;
    }
    #include <stdio.h>
     
    /* 函数声明 */
    double getAverage(int *arr, int size);
     
    int main ()
    {
       /* 带有 5 个元素的整型数组  */
       int balance[5] = {1000, 2, 3, 17, 50};
       double avg;
     
       /* 传递一个指向数组的指针作为参数 */
       avg = getAverage( balance, 5 ) ;
     
       /* 输出返回值  */
       printf("Average value is: %f
    ", avg );
        
       return 0;
    }
    
    double getAverage(int *arr, int size)
    {
      int    i, sum = 0;       
      double avg;          
     
      for (i = 0; i < size; ++i)
      {
        sum += arr[i];
      }
     
      avg = (double)sum / size;
     
      return avg;
    }
    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h> 
     
    /* 要生成和返回随机数的函数 */
    int * getRandom( )
    {
       static int  r[10];
       int i;
     
       /* 设置种子 */
       srand( (unsigned)time( NULL ) );
       for ( i = 0; i < 10; ++i)
       {
          r[i] = rand();
          printf("%d
    ", r[i] );
       }
     
       return r;
    }
     
    /* 要调用上面定义函数的主函数 */
    int main ()
    {
       /* 一个指向整数的指针 */
       int *p;
       int i;
     
       p = getRandom();
       for ( i = 0; i < 10; i++ )
       {
           printf("*(p + [%d]) : %d
    ", i, *(p + i) );
       }
     
       return 0;
    }
  • 相关阅读:
    eclipse 注释模板
    解决win7访问不了局域网共享文件
    java 执行command
    解决Unable to reach a settlement: [diffie-hellman-group1-sha1, diffie-hellman-group-exchange-sha1] and [curve25519-sha256@li
    解决java.lang.UnsupportedClassVersionError
    hadoop命令备忘
    intellij 提交代码到git
    java用代理访问
    解决 jersey javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:119)
    解决Unable to locate Kerberos realm
  • 原文地址:https://www.cnblogs.com/tszr/p/10968531.html
Copyright © 2020-2023  润新知