none
指针的问题 RRS feed

  • 问题

  • const int MAX = 100;
     long primes[MAX] = {2,3,5};
     long trial = 5;
     int count = 3;
     int found = 0;

     do
     {
      trial += 2;
      found = 0;

      for(int i = 0; i < count; i++)
      {
       found = (trial % *(primes + i)) == 0; //换成数组 found = (trial % primes[i]) == 0;
       if(found)
        break;
      }
      if(found == NULL)
        *(primes + count++) = trial; //换成数组 primes[count++] = trial;
     }while(count < MAX);

    这里面的指针没有在定义变量的时候声明的为什么可以用? 如果在上面的声明里面加入*这个的话反而出错了! 为什么呢?


    法拉利 法拉利 法拉利
    2009年6月14日 11:47

答案

  • long primes[MAX]中primes是默认的指向primes[0]的指针.它保存的是primes[0]的地址.primes[0]是long型的
    你若声明成long* primes[MAX], 就成了一个long*型的指针数组,primes[0]就是long*型的.

    这是最基本的C++指针用法,建议你去找本关于指针的书好好看看,这样效率比等人回答要高些:)
    0xBAADF00D
    2009年6月15日 5:51
    版主

全部回复

  • 没看明白LZ说的
    2009年6月14日 17:30
  • long primes[MAX]中primes是默认的指向primes[0]的指针.它保存的是primes[0]的地址.primes[0]是long型的
    你若声明成long* primes[MAX], 就成了一个long*型的指针数组,primes[0]就是long*型的.

    这是最基本的C++指针用法,建议你去找本关于指针的书好好看看,这样效率比等人回答要高些:)
    0xBAADF00D
    2009年6月15日 5:51
    版主
  • long primes[MAX]中primes是默认的指向primes[0]的指针.它保存的是primes[0]的地址.primes[0]是long型的
    你若声明成long* primes[MAX], 就成了一个long*型的指针数组,primes[0]就是long*型的.

    这是最基本的C++指针用法,建议你去找本关于指针的书好好看看,这样效率比等人回答要高些:)
    0xBAADF00D

    我正是在看书 看到不会的又想不出来就上来问了 呵呵 反正这里是技术交流 不会只能问那些高深的技术问题吧?
    如果不充分利用资源 就浪费了 所以能问就上来问
    法拉利 法拉利 法拉利
    2009年6月15日 6:17