C语言指针的一些用法

在C语言中,任何类型的指针的大小是4个字节,因为存放的都是地址。
int *p;//定义了一个整型指针,可以存放整型数据的地址。
p=&a;(p就了存放a的地址,也就是说p指向了a,*p就等于3)
char*p="abcdef";//字符指针,p存放的是第一个字符(a)的地址,*p==a;
int a1[10];//整型数组,a1是一个数组,存放整型(int)数据。
一般我们在编程的时候,经常使用变量替代我们解决问题的一些量,在程序中也就直接用变量操作,这也很好理解,但是,由于某些机制,不能让出现变量这种明文信息,那就要用隐含的方式操作了,这时候提出来指针变量,指针操作的不是直接的值,而是空间,那这样,从变量你可能直接得到值,而用指针你并不能直接得到值,即使得到,你也不知道这个值表示啥意思。
1.什么时候都可以用指针,因为用指针的效率比用变量高。2.当一个函数要返回1个以上的运算结果时,就必须用指针,因为一个函数只能返回一个值,更多的得用指针“带回”。3.操作数组时,用指针不仅方便得多而且代码时效很高。4.操作文件时,不用指针寸步难行。5.利用指针可以简化函数调用的书写过程,使源代码易于阅读。
在C语言中,指针是一种变量类型,用于存储内存地址。指针变量本身也有一个地址,这个地址称为指针的地址。指针变量的值是一个内存地址,指向存储在内存中的某个数据的位置。
1.指针的使用使得不同区域的代码可以轻易的共享内存数据,这样可以使程序更为快速高效;
2.C语言中一些复杂的数据结构往往需要使用指针来构建,如链表、二叉树等;
3.C语言是传值调用,而有些操作传值调用是无法完成的,如通过被调函数修改调用函数的对象,但是这种操作可以由指针来完成,而且并不违背传值调用。
在C语言中数组也是指针,数组的地址就是第一个元素的地址所以赋值时,将str1[0]的地址赋给了p1,他们指向的是同一块内存空间这是地址的传递而不是值的传递p1同样可以当作数组来用比如p1[0]和str1[0]是同一个元素