重温C语言 总结指针遗忘点

来源:互联网 发布:网络应用安全 编辑:程序博客网 时间:2024/04/28 19:59

① 指针即地址

② 指针作为形参时,也可能是值传递

     例:

 void fun(int * p1,int * p2) {   int * temp;   temp = p2;   p2 = p1;   p1 = temp; }
 这个函数从实际作用上讲,并没有对外界产生任何影响,并没有实际意义。

 从本质而言,函数传递和使用的是指针的值,即地址的数值,来进行交换,并非改变指针的指向,也并没有使用指针的地址来进行参数传递

 传递的仍然是值,是值传递。

③指针和数组名的区别

 虽然在C语言中数组名表示地址,一般为数组的起始地址。从底层而言,数组名在C语言中的存储采用的也是指针的形式。但是在使用过程中,二者不同。

 例:

char * a ;a = "...";      //正确
char str[10];str = "...";     //错误

a中存放的是字符串的首地址,可以以s%的形式进行输出,也可以c%的形式输出首个字母。该指针变量还可以通过++/--进行移动,但是因为它是常量所以不能改变指针所指向的值。    
④指向函数的指针
可以直接调用 可用于形参,供其他函数使用。
⑤指向结构体的指针

stu.mo <==> p =&stu  *p.no  <==> p = &stu p->no





0 0
原创粉丝点击