C 指针1

phello.c

#include <stdio.h>

void increment(int* p); // 提前声明increment函数

int main(void){
    printf("index -----------start \n");
    int b = 0; // 初始化b的值
    increment(&b); // 传递b的地址给increment函数
    printf("b 1 is  %i \n",b); // 打印b的值
    increment(&b); // 传递b的地址给increment函数
    printf("b 2 is  %i \n",b); // 打印b的值
    return 0;
}

//这段代码定义了一个名为increment的函数,该函数接受一个指向整数的指针作为参数。
//在函数内部,它将指针所指向的整数的值加一。换句话说,这个函数的作用是将传入的整数值增加1。
void increment(int* p){
    *p = *p + 1;
}
/*这种写法的意义在于可以通过传递指针来修改函数外部的变量的值。如果直接传入变量并加1,那么函数内部对变量的修改不会影响到函数外部的变量。
通过传递指针,函数可以直接修改指针所指向的变量的值,从而实现对函数外部变量的修改。这种方式可以用于在函数内部修改外部变量的值,
而不需要返回值来传递修改后的结果。*/
运行结果:
index -----------start b 1 is 1 b 2 is 2

 

phello2.c

#include <stdio.h>

void increment2(int p); // 提前声明increment函数

int main(void){
    printf("index -----------start \n");
    int b = 0; // 初始化b的值
    increment2(b); // 传递b的值给increment函数
    printf("b 1 is  %i \n",b); // 打印b的值
    increment2(b); // 传递b的值给increment函数
    printf("b 2 is  %i \n",b); // 打印b的值
    return 0;
}

void increment2(int p){
   p=p+1;
}
运行结果:
index -----------start b 1 is 0 b 2 is 0

 

posted @ 2024-01-29 15:20  ~清风煮酒~  阅读(1)  评论(0编辑  收藏  举报