指针变量基础

  指针是C++语言中广泛使用的一种数据类型,运用指针编程是C++语言最主要风格之一。利用指针变量可以表示各种数据结构,能很方便得使用数组和字符串,并能像汇编语言一样处理内存地址,从而编出精炼而高效的程序,指针极大地丰富了C++语言的功能。学习指针是学习C++语言最重要的一环,能否正确理解和使用指针是我们是否掌握C++语言的一个标准。

一:指针变量的定义、赋值

指针变量定义的一般形式
  类型说明符  *变量名;

指针变量的初始化的方法:
1.
int a;
int *p=&a

2.
int a;
int *p;
p=&a;
详细解释如图:
指针变量同普通变量一样,使用之前不仅要定义说明,而且必须被赋予具体的值,未经赋值的指针变量不能使用。

二:指针的引用与运算
对应关系
初始化方法

三:代码样例:

1,输入两个不同的数,通过指针进行加法和乘法运算.

#include<iostream>
using namespace std;
int main()
{
    int a,b;
    int *za,*zb;
    za=&a,zb=&b;
    cin>>a>>b;
    int x=*za+*zb;
    int y=*za**zb;
    cout<<*za<<" "<<*zb<<endl;
    cout<<za<<" "<<zb<<endl;
    cout<<"a*b="<<y<<endl;
    cout<<"a+b="<<x;
    return 0;
}

样例:
输入:
10 20
输出:

10 20
0x68feec 0x68fee8
a*b=200
a+b=30

2,输入N个整数,使用指针变量访问输出

#include<iostream>
using namespace std;
int a[101];
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;++i)
      cin>>a[i];
    int *p;
    p=&a[0];
    for(int i=0;i<n;++i)
    {
        cout<<*p;
        ++p;
    }
    return 0;
}
样例:
输入:
10
9 8 7 6 5 4 3 2 1 0

输出:
9876543210

说明:"p++"的意思是"广义的加1",不是p的值(地址)加1,而是根据类型int增加sizeof(int),即刚刚好"跳过"一个整形的空间,达到下一个整数.
类似的: "p--"表达跳过一个整数空间,达到前一个整数

3,无类型指针


#include<iostream>
using namespace std;
int main()
{
    void *p;
    int a;
    cin>>a;
    double b;
    cin>>b;
    long long c;
    cin>>c;
    float d;
    cin>>d;
    p=&a;
    cout<<*(int*)p<<" "<<endl;
    p=&b;
    cout<<*(double*)p<<" "<<endl;
    p=&c;
    cout<<*(long long*)p<<" "<<endl;
    p=&d;
    cout<<*(float*)p<<" "<<endl;
    return 0;
}

样例:
输入:
10
3.5
5
6.1

输出:
10
3.5
5
6.1

说明:必须明确p所指向的空间的数据类型,类型不一样的不仅仅空间大小不相同,储存的格式也不相同,如果把cout<<*(double*)p<<" "<<endl;换成 cout<<*(long long*)p<<" "<<endl;(地址未改变时)输出的结果将是4615063718147915776.

4.多重指针
样例
int a=10;
int *p;
p=&a;
int **P;
P=&p;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值