C++中如何声明和初始化指针

C++中如何声明和初始化指针

我们来看看如何声明指针。计算机需要跟踪指针指向的值的类型。例如,char的地址与double的地址看上去没什么两样,但 char 和 double 使用的字节数是不同的,它们存储值时使用的内部格式也不同。因此,指针声明必须指定指针指向的数据的类型。
例如,前一个示例包含这样的声明:

int *p updates;

这表明,* p_updates 的类型为 int。由于* 运算符被用于指针,因此p_updates 变量本身必须是指针。我们说 p_updates 指向 int 类型,我们还说 p_updates 的类型是指向 int 的指针,或 int * 。可以这样说,p_updates是指针(地址),而* p_updates是int,而不是指针(见图4.9)。

顺便说一句,*运算符两边的空格是可选的。传统上,C程序员使用这种格式

int *ptr;

这强调* ptr 是一个 int类型的值。而很多C++程序员使用这种格式:

int* ptr;

这强调的是:int * 是一种类型–指向int 的指针。在哪里添加空格对于编译器来说没有任何区别,您甚至可以这样做:

int*ptr;

但要知道的是,下面的声明创建一个指针(p1)和一个int变量(p2):

int* pl,p2;

对每个指针变量名,都需要使用一个*
注意:在 C++中,int*是一种复合类型,是指向imnt的指针。
可以用同样的句法来声明指向其他类型的指针:

由于已将 tax_ptr 声明为一个指向 double 的指针,因此编译器知道tax_ptr 是一个 double 类型的值。也就是说,它知道tax_ptr 是一个以浮点格式存储的值,这个值(在大多数系统上)占据8个字节。指针变量不仅仅是指针,而且是指向特定类型的指针。tax_ptr的类型是指向 double的指针(或 double 类型),str是指向 char 的指针类型(或 char)。尽管它们都是指针,却是不同类型的指针。和数组一样,指针都是基
于其他类型的。虽然 tax_ptr 和 str 指向两种长度不同的数据类型,但这两个变量本身的长度通常是相同的。也就是说,char 的地址与 double 的地址的长度相同,这就好比 1016可能是超市的街道地址,而1024 可以是小村庄的街道地址一样。地址的长度或值既不能指示关于变量的长度或类型的任何信息,也不能指示该地址上有什么建筑物。一般来说,地址需要2个还是4个字节,取决于计算机系统(有些系统可能需要更大的地址,系统可以针对不同的类型使用不同长度的地址)。

对C++感兴趣的朋友点这里:C/C++课程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值