c/c++开发分享试图找到访问数组元素的不同方法?

我是C的新手但决心要学好C.我需要你的帮助。 在练习数组时,我只是想知道我访问数组元素的方式是正确的,或者可能有更好的方法来实现它。 请检查以下代码并建议使用带指针的数组的好方法。 如果有人可以指导我使用指针进行数组的高级练习,我将非常感激。

int main() { unsigned int i, j; unsigned int arr1[] = {1,2,3,4,5,6,7,8,9}; unsigned int * ptr_arr = (unsigned int *)malloc(sizeof(unsigned int)); ptr_arr = arr1; for(i=0;i<=8;i++) { printf("Value at location %dt is: %dn",i,*(ptr_arr+i)); printf("n"); printf("Value of i %d and value at %dn",i, ptr_arr[i]); } return 0; } 

    你的程序是泄漏内存

    unsigned int * ptr_arr =(unsigned int *)malloc(sizeof(unsigned int));

    不需要为ptr_arr分配内存。

    arr1的地址分配就足够了

    ptr_arr = arr1;

    另一种使用它的方法是每次递增指针并使用它

      ptr_array2 = arr1 for (int i = 0; i < 8 ; i++) { printf ("%d", *ptr_array2); ptr_array2++; } 

    访问数组中元素的两种方式都是有效的 。 但为了便于阅读,请使用array[subscript]而不是*(arrayStart+index)

    例:

     int array[10] = {1,2,3,4,5,6,7,8,9,0}; 

    在数组中,元素是连续放置的,从array(say address 0x00000000)开始array(say address 0x00000000) 。 假设32位整数大小, 2位于array + 4地址,位于地址0x00000004 ,类似地,下一个元素3位于地址array + 8 ,即地址0x00000008 ,依此类推。

    当我写array[2]我的意思是我想要在array (或array[0]之后的第二个元素它实际上是数组中的第3个元素。 因此,数组索引从0开始。

    字面意思是, array[0] = *(array + 0)array[1] = *(array + 1)array[2] = *(array+2)

    您无需为ptr_arr分配内存,因为您无论如何都要将arr的地址分配给ptr_arr。 您的上述代码将导致内存泄漏。

    您可以参考互联网上提供的众多教程之一。 仅供参考,我发布了一些链接:

    .PDF

    你错过了一种方法:

      printf("Value of i %d and value at %dn",i, i[ptr_arr]); 

      以上就是c/c++开发分享试图找到访问数组元素的不同方法?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注(猴子技术宅)。

      本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

      如若转载,请注明出处:https://www.ssfiction.com/c-cyuyankaifa/546003.html

      发表评论

      电子邮件地址不会被公开。 必填项已用*标注