日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

C语言-一维数组与指针

發(fā)布時(shí)間:2025/6/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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ù)組元素
int * ptr_array = &array[4]; // array[4]相當(dāng)于*(ptr_array + 4) int * ptr_array = array + 4;
  • 若指針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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。