美文网首页
c基础 - 通过指针变量、方法、地址修改值

c基础 - 通过指针变量、方法、地址修改值

作者: 世道无情 | 来源:发表于2019-03-02 05:52 被阅读0次

前言

变量:就是给内存地址取一个别名;

1. 概述

这里记录下:通过指针变量修改值、通过方法修改值、通过地址修改值;

1.  通过指针变量修改值:有两种方式
        1>:直接给变量重新赋值;
        2>:获取指针变量p的值,间接修改;
2.  通过方法修改值:
        通过运行代码,发现 修改前的i的值 与 change(int i)方法中的i的地址不是同一个,所以无法修改;
        根据这个可以得出一个结论:在以后见到都是有用的:只要通过方法修改两个变量的值,都是无法修改的,
        因为这两个变量的地址已经变了,所以无法修改;
3.  通过地址修改值:
        这里就需要把地址给传递进来,用 int* p来接收传递过来的地址,这里的p就已经是地址了,可以直接打印p,
        就表示输出的是 地址;

2. 代码如下

1>:通过指针变量修改值:一般有两种方式:

a:直接给变量重新赋值;
b:获取指针变量p的值,间接修改;

#include<stdio.h>  // 导入头文件,头文件都是方法的声明。
// 通过指针修改值
void main(){

    // 定义变量 i
    int i = 100;
    // 获取 i的地址,用指针变量 int* p来接收
    int* p = &i;

    // 方式 1:直接给 i重新赋值
    i = 200;
    // 方式 2:获取指针变量 p的值,来间接修改
    // *p:表示 获取指针变量 p的值,来修改i的值
    *p = 300;

    printf("i的值为:%d\n", i);  // 300
    getchar();
}
2>:通过方法修改值:

通过运行代码,发现 修改前的i的值 与 change(int i)方法中的i的地址不是同一个,所以无法修改;

#include<stdio.h>  // 导入头文件,头文件都是方法的声明。

// 在c中,调用顺序是从上往下执行,所以调用方法需要写到上边
// 通过方法修改值:通过打印可知:i的地址和change中的地址不是同一个,所以无法修改,这里可以通过地址来修改
void change(int i){
    printf("change中i的地址是:%p\n", &i);   // i的地址是:0019F894
    i = 200;
}

void main(){
    int i = 100;
    printf("i的地址是:%p\n", &i);  // i的地址是:0019F968
    printf("i的值为:%d\n" , i);
    // change(i);
    change(&i);
    printf("i修改后的值为:%d\n", i); 
    getchar();
}
3>:通过地址修改值:可以修改成功,i修改后的值 为 200 ;
#include<stdio.h>  // 导入头文件,头文件都是方法的声明。

// 通过地址修改值:这里就需要把地址传递进来,用int* p来接收传递过来的地址,因为 这里的 p 就相当于 p = &i,
// 所以 这里的 p就已经是地址了;
void change(int* p){
    printf("change中i的地址是:%p\n", p);// 这里的p已经是地址,可以直接打印
    *p = 200; // 通过 *p就可以获取 p地址的值,然后给其赋值为200
}

void main(){
    int i = 100;
    printf("i的地址是:%p\n", &i);  // i的地址是:0019F968
    printf("i的值为:%d\n" , i);
    // change(i);
    change(&i);
    printf("i修改后的值为:%d\n", i);  // 200
    getchar();
}

相关文章

  • c基础 - 通过指针变量、方法、地址修改值

    前言 变量:就是给内存地址取一个别名; 1. 概述 这里记录下:通过指针变量修改值、通过方法修改值、通过地址...

  • 复习指针

    一、指针基础 以int c = 0;为例变量三要素:变量名c,值0,和其在内存中的地址。 指针即地址值 指针变量为...

  • [Swift]结构体指针操作

    C语言的指针操作 在c语言中申明一个变量并通过指针修改该变量的值 a value is 2 c语言操作结构体指针操...

  • const使用

    通过指针可以修改c语言中const修饰变量的值 const_cast

  • C/C++的指针与数组

    一、指针 1.1、指针与地址 示例: 输出结果: 通过指针修改变量的值: 示例: 输出结果: 如果指针暂时没有所指...

  • C语言:指针1

    一、指针变量定义 C语言两种变量:其中变量(普通变量)存储内容值;地址变量(指针变量)存储地址值。 1.定义格式:...

  • C语言之指针,便于理解

    一、指针变量定义 C语言有两种变量:其中变量(普通变量)存储内容值;地址变量(指针变量)存储地址值。 1、定义的格...

  • C语言基础大头来了(指针)

    C语言基础 指针初讲 指针变量:就是一种用来存储地址的变量。 表示方法:int *p;这里的 * 是用来代表p存储...

  • Go 学习笔记 07 | 指针详解

    一、Golang 中的指针 指针存储的是另一个变量的内存地址。 通过指针修改值会影响到原来的值。 输出: 如何去改...

  • 06-引用(Reference)

    引用(Reference) 在C语言中,使用指针(Pointer)可以间接获取,修改某个变量的值。例如 最终,通过...

网友评论

      本文标题:c基础 - 通过指针变量、方法、地址修改值

      本文链接:https://www.haomeiwen.com/subject/qzwoiftx.html