欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【指针】-4

程序员文章站 2022-03-26 13:09:21
...

指针的定义
地址
内存单元的编号
从零开始的非负整数
范围:【0–2^64-1】


指针的分类
1. 基本类型指针
2. 指针与数组
3. 指针与函数
4. 指针和结构体
5. 多级指针


【指针】-4
【指针】-4


交换两个数字

void huhuan3(int * p, int * q);
int main()
{
    int a = 3;
    int b = 5;
    huhuan3(&a, &b);
    printf("a= %d, b=%d\ n",a,b);
}





//不能完成互换功能
void huhuan1(int, int)
{
    int t;
    t = a;
    a = b;
    b = t;
    return;
}

//不能完成互换功能
void huhuan2(int * p , int * q)
{
    int *t;//如果要互换p和q的值,则t必须int *,不能是int,否则会出错

    t = p;
    p = q;
    q = t;
    return;
}
void huhuan3(int * p, int * q)
{
    int t;//如果要互换p和q的值,则t必须int ,不能是int *,否则会出错

    t = *p;//pint *,*pint
    *p = *q;
    *q = t;
    return;
}

*的含义

  1. 乘法
  2. 定义指针变量
    int *p;
    //定义了一个名字叫p的变量,int *表示只存放int变量的地址
  3. 指针运算符
    该运算符放在已经定义好的指针变量的前面
    如果p是一个已经定义好的指针变量
    则*p表示以p的内容为地址的变量

补充:形参与实参是否为同一变量?

void f(int i)
{
    i = 99;
}
int main()
{
    int i = 6;
    printf("i=%d\n", i);
    f(i);
    printf("i=%d\n", i);
}
i=6
i=6
请按任意键继续. . .

为局部变量形参分配空间


void swap_2(int *p, int *q)//形参名字是p和q,接收实参数据的是p和q
{
    int * t;
    t = p; p = q; q = t;
}
int main()
{
    int a = 5;
    int b = 3;
    swap_2(&a, &b);
    printf("a=%d,b=%d\n", a, b);
    return 0;
}

【指针】-4

相关标签: 指针