C++ 笔记2.1 指针

8 篇文章 0 订阅

 函数指针变量

 

一个函数在编译时被分配给一个入口地址。这个函数入口地址就称为函数的指针。
int (*p) (int,int);                //定义指向函数的指针变量p
                             (int): p所指向的函数的形参类型
                    p:是指向函数的指针变量  
        第一个 int:指针变量p指向的函数的类型


int max(int x,int y);              //函数声明
int (*p)(int,int);                 //定义指向函数的指针变量p
int a,b,m;
p=max;                             //使p指向函数max



指针函数

int *a (int x,int y);

指针数组:指针数组中每一个元素相当于一个指针变量,它的值都是地址。

int *p[4];

指向指针的指针

char *p   p为指向字符型数据的指针变量

char *(*p);     p指向的是字符指针数据。

= char * * p;

数组名name代表该指针数组首元素的地址。name+i是name[i]的地址。
由于name[i]的值是地址(即指针),因此name+i就是指向指针型数据的指针。



#include <iostream>
using namespace std;
int main( )
{ char **p;                //定义指向字符指针数据的指针变量p 
char *name[]={″BASIC″,″FORTRAN″,″C++″,″Pascal″,″COBOL″};
p=name+2;                //见图6.23中p的指向
cout<<*p<<endl;          //输出name[2]指向的字符串
cout<<**p<<endl;         //输出name[2]指向的字符串中的第一个字符
}


运行结果为 
C++
C

 指针数据类型:

xx

p=&a;                //将变量a的地址赋给p
p=array;             //将数组array首元素的地址赋给p
p=&array[i];         //将数组array第i个元素的地址赋给p
p=max;               //max为已定义的函数,将max的入口地址赋给p
p1=p2;               //p1和p2都是同类型的指针变量,将p2的值赋给p1


指针变量可以有空值,即该指针变量不指向任何变量,可以这样表示: 
p=NULL;

 

引用: 为另一个变量起一个别名。&是引用声明符。

假如有一个变量a,想给它起一个别名b,可以这样写: 
int a;                       //定义a是整型变量
int &b=a;                    //声明b是a的引用
以上语句声明了b是a的引用,即b是a的别名。

 

#include <iostream>
using namespace std;
int main( )
{ void swap(int &,int &);
int i=3,j=5;
swap(i,j);
cout<<″i=″<<i<<″  ″<<″j=″<<j<<endl;
return 0;
}

void swap(int &a,int &b)             //形参是引用类型
{ int temp;
temp=a;
a=b;
b=temp;
}
输出结果为
i=5 j=3

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值