Java 指针和字符串简述

来源:互联网 发布:淘宝网pc版 编辑:程序博客网 时间:2024/06/06 12:29

1、对象数组

(1)对象数组的定义与访问

定义对象数组:

类名 数组名[元素个数];

访问对象数组元素,通过下标访问:

数组名[下标].成员名

(2)数组元素所属类的构造函数

元素所属的类不声明构造函数,则采用默认构造函数。

各元素对象的初值要求为相同的值时,可以声明具有默认形参值的构造函数。

各元素对象的初值要求为不同的值时,需要声明带形参的构造函数。

当数组中每一个对象被删除时,系统都要调用一次析构函数。

2、指针的概念、定义和指针运算

程序在运行时每个变量都对应一个内存地址,通常我们都是对变量的值进行操作,很少考虑对变量的地址进行操作,但确实有些时候需要利用变量的内存地址才能完成一些工作,或者更利于工作的完成。

例如,当调用函数时数组类型参数不是将整个数组的每一个值都传到函数内部,而是向函数内部传递了数组的地址,在函数内部对数组参数的使用就直接转化为对外部数组的操作。这种传地址方式极大地简化了程序调用的方式,也为编程人员提供了方便。因此,对地址的操作是C++语言中一项重要内容。

(1)指针概念

指针:内存地址,用于间接访问内存单元

指针变量:用于存放地址的变量

(2)指针变量定义

存储类别  数据类型  *指针变量名

存储类别包括:extern、static和auto。

数据类型可以是基本类型,如:int、float、char、double等,也可以是数组、指针等数据类型。

通常把指针指向的变量的数据类型称为指针的数据类型(也称为基类型);而任何一个指针变量本身数据值的类型都是unsigned long int。

注意:定义一个指针变量必须用符号“*”,它表明其后的变量是指针变量,但千万不要认为“*p”是指针变量,指针变量是p而不是*p。

(3)与地址相关的运算

& 运算符:取地址运算符,&x的值为x的地址。

* 运算符:指针运算符,或指向运算符,也称间接运算符,*p代表p所指向的变量。

注意:在指针变量的定义和指针变量的引用中都有*p。但引用指针时的*p与定义指针变量时用的*p是有区别的,它们形式上相似,而含义不同。

有关指针表示方法的区别:

例如,有一个指针px ,

px  — 指针变量,它的内容是地址量。

*px— 指针的目标变量,它的内容是数据。

&px — 指针变量占用的存储区域的地址。

int *ptr = &i;  //取i的地址赋给ptr

其实分开写 :int *ptr;

             Ptr=&i;

 

(4) const指针

关键字const放在不同的位置表示的意义也不相同:

(1)关键字const放在指针类型前,就是声明一个指向常量的指针变量。此时,在程序中不能通过指针来改变它所指向的值,但是指针本身的值可以改变,即指针可以指向其他数据。

     格式: const  int  *ptr

(2)关键字const放在“*”号和指针名之间,就是声明一个指针常量(也称常指针)。因此,指针本身的值不可改变,也即它不能再指向其他数据,但它所指向的数据的值可以改变。

     格式:int  *const  ptr

(3)关键字const在上述两个地方都加,则是声明一个指向常量的指针常量(指向常量的常指针),指针本身的值不可改变,它所指向的数据的值也不能通过指针改变。

    格式: *const  int *const ptr

 

 

 

 

 

 

 

 

0 0