Java教程

10.指针

本文主要是介绍10.指针,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
  • 从根本上看,指针(pointer)是一个值为内存地址的变量

地址运算符:&

后跟一个变量名时,&给出该变量的地址。

&nurse		//表示变量nurse的地址。

地址运算符:*

后跟一个指针名或地址时,*给出储存在指针指向地址上的值。

val = *ptr; // 把ptr指向的地址上的值赋给val

声明指针

声明指针变量时必须指定指针所指向变量的类型,因为不同的变量类型占用不同的存储空间;另外,程序必须知道储存在指定地址上的数据类型。

int * pi; // pi是指向int类型变量的指针
char * pc; // pc是指向char类型变量的指针
float * pf, * pg; // pf、pg都是指向float类型变量的指针
	类型说明符表明了指针所指向对象的类型,星号(*)表明声明的变量是一个指针。
	第一句的意思是pi是一个指针,*pi是int类型。

pc指向的值(*pc)是char类型。pc本身是什么类型?我们描述它的类型是“指向char类型的指针”。
在这里插入图片描述

使用指针在函数间通信

#include <stdio.h>
void interchange(int * u, int * v);
int main(void)
{
	int x = 5, y = 10;
	printf("Originally x = %d and y = %d.\n", x, y);
	interchange(&x, &y); // 把地址发送给函数
	printf("Now x = %d and y = %d.\n", x, y);
	return 0;
}

void interchange(int * u, int * v)
//通过修改地址上的值来交换变量的值
{
	int temp;
	temp = *u; // temp获得 u 所指向对象的值
	*u = *v;
	*v = temp;
}
  • 变量:名称、地址和值

     编写程序时,可以认为变量有两个属性:名称和值。
     计算机编译和加载程序后,认为变量也有两个属性:地址和值。地址就是变量在计算机内部的名称。
    
  • 普通变量把值作为基本量,把地址作为通过&运算符获得的派生量;而指针变量把地址作为基本量,把值作为通过*运算符获得的派生量。

这篇关于10.指针的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!