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