在C语言中,指针是一种特殊的变量,用于存储另一个变量的内存地址。指针可以用来间接访问变量的值,以及在函数之间传递参数和返回值。
下面是一些常见的指针的使用方法: 反正记住指针就是地址 而且只能放地址
1.声明指针变量:
int *ptr;
:声明一个指向int类型变量的指针变量。float *ptr;
:声明一个指向float类型变量的指针变量。char *ptr;
:声明一个指向char类型变量的指针变量。
2.取地址运算符(&):
int num = 5;
int *ptr = #
:将num的内存地址赋值给ptr指针变量。- int a[5]={1,2,3,4,5}
- int *p=a; //因为数组a本身就代表a数组的首地址 所以没毛病
3.访问指针所指向的变量:
*ptr
:通过*运算符可以访问指针所指向的变量。printf("%d", *ptr);
:打印出ptr所指向的变量的值。
4.指针的运算:
- 指针可以进行递增和递减运算,使其指向下一个或前一个内存位置。
ptr++
:将指针指向下一个内存位置。ptr--
:将指针指向前一个内存位置。ptr + n
:将指针指向当前位置的第n个位置。
1 #include <stdio.h>
2 int main(){
3 int i,a[7]={1,2,3};
4 int *p=a;//此时指针p存放的是a的首地址
5 printf("%d %p", *p, p);//*p(*解引用p就指向首地址a的数组元素)
6 for(i=0;i<7;i++){
7 scanf("%d",p);//使用数组指针时 可以直接使用指针p访问地址
8 p++;//地址的值++
9
10 }
11 p=a;//让指针指向a的首地址 方便下次访问
12 for(i=0;i<7;i++){
13 printf(" %d \n ",*p);//这次需要访问的是地址里的值 需要解引用
14 p++;//地址++
15 }
16 p=NULL;//释放指针
17
18
19 return 0;
20 }
~
int a[3]={1,2,3};
int *p=a;
p++;//p地址+1
printf("%d",*p);//解引用指针p所以p的值是2