指针

指针定义

//定义普通变量
float a = 99.5, b = 10.6;
char c = '@', d = '#';
//定义指针变量
float *p1 = &a;
char *p2 = &c;
//修改指针变量的值
p1 = &b;
p2 = &d;

*是一个特殊符号,表明一个变量是指针变量,定义 p1、p2 时必须带*。而给 p1、p2 赋值时,因为已经知道了它是一个指针变量,就没必要多此一举再带上*,后边可以像使用普通变量一样来使用指针变量。也就是说,定义指针变量时必须带*,给指针变量赋值时不能带*

修改数据

 

#include <stdio.h>

int main(){
    int a = 15, b = 99, c = 222;
    int *p = &a;  //定义指针变量
    *p = b;  //通过指针变量修改内存上的数据 //a=99,*p=99;
    c = *p;  //通过指针变量获取内存上的数据 //c=99
    printf("%d, %d, %d, %d\n", a, b, c, *p);  //输出结果:99,99,99,99
return 0; }

 

 

指针与一维数组

定义:

eg1:int x[3]={4,5,6};int *p;            eg2:int x=12;

        p=&x;                                              int *p=x;

 

eg3:
  表示:地址[ ]
     *(地址)
序号
0
 1
2
内容
4
5
6
地址
*a *(a+1) *(a+2)
  p *p *(p+1) *(p+2)
 
 例1:

 

运行结果:4,5,6

          4,5,6

        4,5,6

        4,5,6

分析:*a=当前地址为首地址,即a[0]=4;

   *(a+1)=首地址偏移一个位置,即a[1]=5;

      p同理

例2:

运行结果:5,6,6                             分析:(a+1)[0]=当前地址(a+1)为首地址偏移0个位置

     5,6,6                                           5          ——>(a+1)[0]=5;

                                                                  (a+1)[1]=当前地址(a+1)为首地址偏移1个位置

                                                                     5    +1  ------>(a+1)[1]=6;

 

posted @ 2023-09-04 23:39  默默的敲~  阅读(13)  评论(0)    收藏  举报