首页 > 技术文章 > 学习链表关于指针的一些理解

DevLegal 2017-12-03 14:18 原文

指针必须要初始化(即使是结构体指针),不然就算不出现编译错误,在运行也会出现错误。
1、void* 通常来说有三种用法,详情请百度。
2、在调用函数中的指针地址和主函数中指针地址已经不同,只是其中储存的地址都指向了a而已。

#include<stdio.h>
#include<stdlib.h>
void Try_change(int *p) {
	int b = 7;
	printf("Try p=%p &p=%p\n", p, &p);
	p = &b;
}
int main() {
	int *p = NULL;
	int a = 5;
	p = &a;
	printf("main p=%p &p=%p\n", p, &p);
	Try_change(p);
	printf("%d\n", *p);
	system("PAUSE");
	return 0;
}

运行结果:

3、关于指针的指针(二级指针)

int a[5] = {1, 2, 3, 4, 5};
     int *p = a;
     int **point = &p;

输出**point,结果为1,等价于*p;
详情请参见:
http://blog.csdn.net/g200407331/article/details/52610150

推荐阅读