楼上说的对啊,用指针就是用来直接操纵内存的,动态申请空间就是其中一个应用。
下面还有几种经典的用法:
1.指针变量作为函数参数,在函数中修改变量的值。这个不用指针很难实现(c++中有引用可以实现)
void swap(int * p1, int *p2)
{// 在函数中交换两个变量的值
int tmp;
tmp = *p1;
*p1 = *p2;
*p2 = tm;
}
2.
你如果想在函数中返回多个值,应该怎么办呢?
可以选择从主调函数中向被调用函数传入参数,等待返回结果。
举例:
void func(int *pa, int *pb, int *pc)
{// 你向函数中传入三个参数,可以得到三个返回值了。
……
}
3.指针的主要应用就是直接操纵内存,这样可以减少复制数据的时间。
struct Student
{
char name[10];
BOOL sex;
int score[10];
}
void func(struct Student *pst)
{// 传址,减少了数据复制的时间,
// 有时为了防止参数被修改,可以改为 struct Student const *pst
}
void func(struct Student stu)
{// 传值,需要把实参的值复制到stu中,有时耗费大量时间
}
4。
此外,还有常用到的数组,其实就是对内存直接操纵。其他的应用如指针与多维数组,指向函数的指针等。
如果光靠别人已经懂的指针的人来这里给你讲指针的妙处和指针的无穷好处,恐怕你也只能是听天书班的!指针的却是C中不可或缺的东西,如果不懂的指针,就说明你没有掌握C的精华,所以能体现出指针的重要性,而且不是靠别人来说你就会懂的!
如果你想知道,还是建议楼主慢慢的学习指针,学会利用它,自己慢慢发现他的妙处,和作用,这样做,比光看别人光说不练恐怕效果会有很大的不一样!指针,你会接触的,接触了,你会放不下。呵呵
加油吧
应该说C语言有很多东西不用指针根本就没法做,比如最基础的链表,没有指针怎么弄?
指针是C语言的灵魂,初学你可能体会不到,等到以后学一些数据结构或者算法的时候,指针的大量应用就体现出来了。
应该说, 在C语言中离不开指针. 在java或C#或ruby或python都无所谓的.
在C中, 最基本的申请一块内存...就需要用指针. 因为申请的内存是以指针的方式返回其地址的.
几乎凡是存储在内存中的,都可用指针指向:读和存的速度更快,比如:数组,函数,结构体等,都可用指针