指针相关基础
指針向來都是難點,今天我們一起來了解一下。
指針,一個用來保存地址的對象,一般形式為:類型名 *指針變量名,要說明的是指針變量只能存放地址。定義指針指針變量時還要注意指針的類型,指針的類型決定了指針能指向的數據類型。指針定義了沒初始化則指向的地址是不知的。
int a=10; int *p=&a; printf("%d",*p);//輸出地址指向的值 printf("%d",p);//這里輸出的是地址指針變量作為函數的參數:將一個變量的地址作為函數的參數
#include<stdio.h>int change(int *p1) {*p1=5;printf("%d",*p);return 0; }int main() {int a=1;int *p=&a;change(p);return 0; }利用指針改變a的值,打印:5
數組元素的指針:數組元素的地址
int a[5]={1,2,3,4,5}; int *p; p=&a[0];//同于p=a其中數組名就代表數組元素的首地址,則可以直接賦值,a[0]表示第一個數組元素的值
通過指針引用數組中的元素:
1.下標法,a[n]代表數組第n個元素的值
2.指針法,*(p+i),其中i表示要移動的位數,*表示取值
通過指針引用數組:
#include<stdio.h>int main() {int a[5]={1,2,3,4,5};int *p;for(p=a;p<=a+5;p++){printf("%d\n",*p);}return 0; }打印:1 2 3 4 5
用數組名作為函數的參數:其實傳入的是數組元素的首地址
#include<stdio.h>int print(int *p) {for(int *p=a;p<a+5;p++){printf("%d\n",*p);} }int main() {int a[5]={1,2,3,4,5};print(a);return 0; }打印:1 2 3 4 5通過指針引用多維數組:
#include<stdio.h>int main() {int a[2][3]={1,2,3,4,5,6};for(int *p=a[0];p<a[0]+6;p++){printf("%d\n",*p);}return 0; }總結
- 上一篇: C中常用字符串处理函数
- 下一篇: linux常用命令,知识在于总结