指针详解(一)

指针:等同于地址,
定义:数据类型*指针名   int *p或int* p
* 号:1.定义指针的时候,类型说明符
       2.通过*号 地址,可以访问到真实内存 
       3.四则运算的乘号   
 
 *号前两中情况怎么区分?
 在指针定义的时候,表示类型说明。
 &号:1.取地址符号
           2.位操作符号 
初始化:int *p=&a;

int main()
{
    int a = 10;
    int b = 20;
    int* p;
    int* p = &a;
    *p = 100;//就是*p=a=100
    p = &b;//b的地址替换了p原来的地址
    *p = 200;//*p=b=200

    int** pp = &p;//二级指针 pp   保存一级指针p的地址
    *pp = &a;//*pp=p=&a
    **pp = 1000;//**pp=*P=a=1000
    *pp = &b;
    **pp = 2000;//二级指针可参照一级指针去理解
    return 0;
}

1.指针如何引用数组以及字符数组
1.1指针怎么指向数组

int arr[]={1,2,3};
int *p;
p=arr;


1.2指针+1,指针-1,指针-指针,指针+指针;
1.3如何通过指针的形式访问数组
1.4在函数传参的时候,数组会退化成为指针


数组名还表示数组首元素的地址
对于指针+1来说:加一个格子(对于指针来说,+1其实是加上它的类型,)
对于指针-1来说:向前走一个格子。
对于*2、/2、%2,都不允许

指针-指针:这两个指针如果在在同一个数组内,指针-指针代表这两个指针中间有多少个格子

指针+指针:无意义。

怎么访问数组内的元素值?
1.数组下标        arr[7]            7[arr]//可以这样写
2.指针解引用去访问   *(p+7)       *(7+p)     p[7]    7[p]//可以这样写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值