学习链表关于指针的一些理解

Posted DevLegal

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习链表关于指针的一些理解相关的知识,希望对你有一定的参考价值。

指针必须要初始化(即使是结构体指针),不然就算不出现编译错误,在运行也会出现错误。
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

以上是关于学习链表关于指针的一些理解的主要内容,如果未能解决你的问题,请参考以下文章

C语言的指针链表的原理和各类操作

关于:1.指针与对象;2.深浅拷贝(复制);3.可变与不可变对象;4.copy与mutableCopy的一些理解

基础篇5 # 链表(下):写好链表代码的六个实用技巧

基础篇5 # 链表(下):写好链表代码的六个实用技巧

关于链表算法需要注意的空指针异常

数据结构与算法链表(下)