#include <stdio.h> void test(int *a) { *a = *a + 1; //使用取值运算符让指针a指向的值+1 printf("a: %d", *a); } int main(void) { int a = 0; test(&a); return 0; }
运行结果为:
1
a: 1
但本文所要说的是如何修改指针的值, 看下面的例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#include <stdio.h> void test(int *a) { a = a + 1; //让指针a的值+1 if (a != NULL) { printf("test: a不为空\n"); } } int main(void) { int *a = NULL; if (a == NULL) { printf("main: a为空\n"); } test(a); if (a == NULL) { printf("main: a为空\n"); } return 0; }
#include <stdio.h> int * test(int *a) { a = a + 1; //让指针a的值+1 if (a != NULL) { printf("test: a不为空\n"); } return a; } int main(void) { int *a = NULL; if (a == NULL) { printf("main: a为空\n"); } a = test(a); if (a != NULL) { printf("main: a不为空\n"); } return 0; }