乌市泽哥 发表于 2023-2-2 14:16:54

指针

指针:


[*]什么是指针?表示数据存储的地址
[*]语法:数据类型 *指针名 被指针对象
[*]*prt  是值
[*] prt 是地址
[*]int *prt = &xxx,声明指针并保存地址
[*]//引入头文件
#include <stdio.h>

void main(){
    int num = 1;
    int num2 = 200;
    //1.int * 表示类型为 指针类型
    //2.名称 ptr,ptr就是一个 int *类型
    //3.ptr指向一个int类型的变量地址
    int *ptr = &num; <br>
    ptr = &num2; //改变存放地址
    *ptr = 100; //提供ptr去修改num地址里面的值

    //1.获取本身地址 &ptr(指针也是有地址的,int * 也是类型)
    //2.ptr - 存放的地址
    //3.*ptr - 获取指针头里面存放的值
    printf("num=%p ptr=%p ptr地址%P:%p ptr值:%d",&num,&ptr,ptr,*ptr);
    getchar();

[*]细节:

[*]int *ptr的int是根据指向的地址的类型来决定的,double、floa也都可以
[*]苦于提供指针头里的地址去改变地址对应的值
[*]指针类型也是有地址的 

[*]https://img2022.cnblogs.com/blog/2925723/202210/2925723-20221004200905790-1660069806.png 
[*] 值传递和地址传递:

[*]值传递:默认传递值的类型:基本数据类型(整数类型、小数类型、字符类型),结构体、共用体

[*]什么是值传递:就是把值传递给另一个变量,被赋值的变量发生改变不影响到传递的变量  

[*]地址传递:指针、数组

[*]什么是地址传递:地址传递要叫指针传递,将指针中变量存储的地址,传递个接收的变量,如果是数组,就将数组的首地址传递个接变量

[*]void main(){
    //值传递
    int i = 10;
    int k = i;
    k = 20;

    //地址传递
    double ii = 10.99;
    double *ptr = &ii;
    double *kk = ptr;
    *kk = 55;
    getchar();

       
     


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 指针