码迷,mamicode.com
首页 > 编程语言 > 详细

C语言-二级指针

时间:2020-03-06 15:35:53      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:swap   class   main   类型   style   定义   void   二级指针   oid   

使用int **pp_val = &p_val 来定义二级指针

/*
二级指针演示
*/
#include <stdio.h>
int main() {
    int val = 0; 
    int *p_val = &val; 
    int **pp_val = &p_val; //表示p_val的地址 
    printf("pp_val是%p\n", pp_val); 
    printf("p_val是%p\n", p_val); 
    **pp_val = 10; 
    printf("%d\n", val); 
}

在main的输入函数里面,将输入参数的形式变换成char **argv, 使用*(argv + num) 代表字符串的地址

/*
二级指针演示
*/
#include <stdio.h>
int main(int argc, char **argv) {
    int val = 0; 
    for (val = 0;val < argc;val++) {
        printf("%s\n", *(argv + val));
    } 

}

使用void *pp_val = &p_val; 定义方式不同上面的操作, int **p_val = &p_val; 

使用(int **) 进行强制类型转换

/*
指针演示
*/
#include <stdio.h>
int main() {
    int val = 0; 
    int *p_val = &val; 
    void *pp_val = &p_val; 
    ** (int **)pp_val = 10; //将数据进行赋值操作
    printf("%d\n", val); 
}

使用二级指针将一级指针的地址变为NULL

/*
二级指针演示
*/
#include <stdio.h>
void swap(int *p_val, int *p_val1) {
    *p_val ^= *p_val1; 
    *p_val1 ^= *p_val; 
    *p_val ^= *p_val1; 
    printf("val的大小是%d val1的大小是%d\n", *p_val, *p_val1); 
}
void set_null(int **pp_val) {
    *pp_val = NULL; //将数据的地址设置为0 
}
int main() {
    int val = 0, val1 = 0;
    int *p_val = &val; 
    int *p_val1 = &val1; 
    swap(p_val, p_val1);     
    set_null(&p_val); 
}

 

C语言-二级指针

标签:swap   class   main   类型   style   定义   void   二级指针   oid   

原文地址:https://www.cnblogs.com/hyq-lst/p/12426351.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!