关于指针问题,有些许困惑

我是刚学习c语言,我最近在学习指针部分(C语言),对于指针的概念种种,有些理解,不知道对不对,希望懂的能解释一下,万分感谢。
定义一个指针int * p,假如这个指针指向a,则写作int * p=& a ,那这个p单独拿出来,是不是就目前代表着是a的地址?而* p 是不是代表这个指向地址的值,也就是a的值?如果给* p 赋值,那a的值是不是也会变?如果我给p赋值另一个地址比如p=&b,接着* p =100,那么b的值会不会变?
还有就是这个指针在代码编写过程中,主要的作用体现在哪些方面?有点迷茫,不知道作用方向在哪儿,哪些地方需要用到指针,或者说,哪些情况,需要指针,希望有会的能够帮忙解决我的迷惑,万分感谢!

p=&b 后p指向b,对p的操作针对b了,与a无关了。
指针最简单的用途是在函数中改变参数的值。

这里我就不回答了
只说我们通常怎么过的
通读--全局有概念,能理解理解,不理解先跳过,也许后面某个章节你一下就悟了
精度--通读完了,还是没领悟,那就找专门的章节和书籍来读

所以对于这块,专门的书籍是“C和指针”----------不贵,相对来说因为他是只讲这部分,所以讲的深,但是在深也就这一个章节,只能写个300页,所以比那些啥都有的书还便宜


呵呵,好书一版再版,现在好像涨价了,我看的那版实体书才30大元,现在这版电子书都快30了