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