指针

<span style="font-size:24px;">定义一个整型变量
    int a = 10;
       定义一个指针变量,和定义整型变量类似,也是包含三部分:数据类型 变量名=初值
    只不过指针变量用来存储地址而已
int *p = NULL;
    //指向关系
    p = &a;//将a的地址赋给p
    printf("%d\n", a);//直接访问 内存单元中的数据
    //*p ,此时的作用根据指针变量存储的地址,找到对应的内存单元,将内存单元上的数据读取出来。
    printf("%d\n", *p);//间接访问 内存单元数据
    //对于指针变量类型来说,所规定的存储空间的大小只和操作系统的位数有关,32位的操作系统位4个字节,64位的为8个字节。
    int *指针变量类型,p指针变量名,null指针变量初值
    int 的作用:(1)当自增时,增加几个字节大小,(2)当存取数据时,一次性读取几个字节。
    定义时,*告诉编译器,后面的变量时一个指针变量,用来存地址的
    赋初值为null,让指针变量指向一个无效的空间
    int *p1 = NULL;
    当对p指向的空间进行操作时,p必须指向一个有效的空间(明确的空间)
指针变量的重新赋值,叫做指针重指向,我们就看最后一次指向谁即可
   p1 = &c;
   printf("%d\n", *p1);
 指针与数组
    int a[5] = {10,11,12,13,14};
   int *p = NULL;
    让指针指向数组的首地址(数组名a就代表数组的首地址,第一个元素的地址)
    p = a;
    printf("%d\n", *p);
   p ++;//p = p + 1,意味着加4个字节
    printf("%d\n", *(p + 1));
    printf("%d\n", *(p + 4));
    当把数组首地址赋给指针变量p之后,指针变量就可以当作数组名来使用
    数组名是一个常量,不可对其更改
/**     *  字符数组str需要存储字符,所以把常量区中frank字符串的内容拷贝到数组中,
     而对于数组a来说,数组中的每一个元素都是一个字符型的指针变量,指针变量用来存储地址,所以将常量区的frank,duck,iphone的开始地址拷贝到对应对变量中,通过指针操作的是常量区的内容
     */
    常量区的内容不可更改</span>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值