C语言-一维数组与指针
生活随笔
收集整理的這篇文章主要介紹了
C语言-一维数组与指针
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 1 用指針訪問數組的三種方式
- 2 一維數組做函數的參數
- 2.1 方法一
- 2.2 方法二
- 3 指針自增自減運算
1 用指針訪問數組的三種方式
#include <stdio.h>int main() {int array[5] = {5, 10, 15, 20, 25};int i;int * ptr_array = array;for(i = 0; i < 5; i++){printf("第%d個元素的值為%d\t地址為%p\n", i + 1, ptr_array[i], &ptr_array[i]);printf("第%d個元素的值為%d\t地址為%p\n", i + 1, *(ptr_array + i), ptr_array + i);printf("第%d個元素的值為%d\t地址為%p\n", i + 1, *ptr_array, ptr_array);ptr_array++; //每次循環都會移動指針,要注意重置指針的位置}return 0; }- 遞增運算符 ++ 比指針 * 和的優先級高,如 *ptr_array ++
- array 是數組名,也是數組的首地址
- 數組名不能進行加減操作
- array 的值和 &array[0] 的值相同
- 指針變量可以指向數組元素
- 若指針P1和P2指向同一數組(只有這樣相減才有意義),執行P2-P1,結果是P2-P1兩個地址距離,即地址數值差除以數組元素長度。
- 指針可以++,--,或者加上一個數,減去一個數,兩個指針相加無意義,相減只有在上一條情況下才有意義。
2 一維數組做函數的參數
2.1 方法一
int func(int arr[], int n); int func(int [], int); // 在聲明時可以省略形參名2.2 方法二
這種指針形式仍然可以在函數內用arr[n]的形式表示數組元素。
int func(int *arr, int n); int func(int *, int); // 在聲明時可以省略形參名3 指針自增自減運算
若指針p指向數組a
- *p++ = *(p++),先引用,再自增
- *(++p),先自增,再引用
- ++(*p) = ++a[0],數組元素加1
若指針p指向數組a中第i個元素 - *(++p) = a[++i]
- *(p++) = a[i++]
- *(--p) = a[--i]
- *(p--) = a[i--]
總結
以上是生活随笔為你收集整理的C语言-一维数组与指针的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言-转义字符注意事项
- 下一篇: C语言-二维数组与指针