指针(01)

指针的定义

声明:

1、指针也是一种类型,与整型、字符型、浮点型、双精度浮点型 一样。又称为指针变量。它是一个变量,并且存放变量的地址。
2、int *p=&a; p称为指针(变量),p指向了a,p保存了a的地址,*p为a的内容
3、const int *p=&a; p指向的内容不能改变,p的指向可以修改
4、int * const p=&a;p的指向不能修改,里面的内容可以修改
5、二值:指向的地址,指向的内容

#include<iostream>
using namespace std;
void main()
{
    int a=10;//整型变量本身有地址,存放整数
    int b=20;
    int *p=NULL;//指针变量本身有地址
    int **s=NULL;
    p=&a;//存放地址a的地址
    s=&p;
    *p=100;
    *s=&b;
}

这里写图片描述

指针变量都占四个字节,为何区分,char* ,int*

1、指针的类型、指针所指的类型
2、指针所指的内存空间,或者指针自身的值(指针保存了变量的地址)
3、指针本身所占的内存

判断:

从语法的角度看,去掉变量名,就是指针的类型;去掉变量名 和 *号就是指针所指的类型。
int (p)[5]====>int()[5]====>int [5]
int p[5]====>int[5]======>int[5]
int (p)(int)==>int()(int)====>int()(int)

#include<iostream>
using namespace std;
//p1,p2,p3指向了同一段地址
//取内容时,指针+1,与指向的类型有关
void main()
{
    int s=1234567890;
    char * p1=(char *)&s;
    cout<<*p1<<endl;
    short *p2=(short *)&s;
    cout<<*p2<<endl;
    int *p3=&s;
    cout<<*p3<<endl;    
    int ar[10]={0};
    int (*p)[10]=&ar;//int (*)[10]
    cout<<p<<":"<<p+1<<endl;//int[10]//相差40个字节
}

总结

两值四方面

1、指针指向的值
2、指针自身的值
a、指针自身的类型
b、指针指向的类型
c、指针指向的内存或者指针自身的内容
d、指针本身所占的内存

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值