C ++指针简单易学.使用指针可以更轻松地执行某些C ++任务,而没有它们就无法执行其他C ++任务,例如动态内存分配.
如您所知,每个变量都是内存位置和每个内存location定义了其地址,可以使用&符号(&)运算符访问该地址,该运算符表示内存中的地址.考虑以下将打印定义和减去的变量的地址;
#includeusing namespace std;int main () { int var1; char var2[10]; cout << "Address of var1 variable: "; cout << &var1 << endl; cout << "Address of var2 variable: "; cout << &var2 << endl; return 0;}
编译并执行上述代码时,会产生以下结果 :
Address of var1 variable: 0xbfebd5c0Address of var2 variable: 0xbfebd5b6
什么是指针?
指针是一个变量,其值是另一个变量的地址.与任何变量或常量一样,您必须先声明指针才能使用它.指针变量声明的一般形式是 :
type * var-name;
这里, type 是指针的基本类型;它必须是有效的C ++类型, var-name 是指针变量的名称.用于声明指针的星号与用于乘法的星号相同.但是,在此语句中,星号用于将变量指定为指针.以下是有效的指针声明 :
int *ip; // pointer to an integerdouble *dp; // pointer to a doublefloat *fp; // pointer to a floatchar *ch // pointer to character
所有指针值的实际数据类型,无论是否为整数, float,character或其他,是相同的,表示内存地址的长十六进制数.不同数据类型的指针之间的唯一区别是指针所指向的变量或常量的数据类型.
在C ++中使用指针
很少有重要的操作,我们将非常频繁地使用指针. (a)我们定义一个指针变量. (b)将变量的地址分配给指针. (c)最后访问指针变量中可用地址的值.这是通过使用一元运算符*来完成的,该运算符*返回位于其操作数指定的地址处的变量的值.以下示例使用这些操作 :
#includeusing namespace std;int main () { int var = 20; // actual variable declaration. int *ip; // pointer variable ip = &var; // store address of var in pointer variable cout << "Value of var variable: "; cout << var << endl; // print the address stored in ip pointer variable cout << "Address stored in ip variable: "; cout << ip << endl; // access the value at the address available in pointer cout << "Value of *ip variable: "; cout << *ip << endl; return 0;}
当编译并执行上述代码时,它产生的结果如下 :
Value of var variable: 20Address stored in ip variable: 0xbfc601acValue of *ip variable: 20
C ++中的指针
指针有很多但很简单的概念,它们对C ++编程非常重要. C ++程序员应该清楚以下几个重要的指针概念 :
Sr.No | 概念&说明 |
---|---|
1 | 空指针 C ++支持空指针,这是一个常量,在几个标准中定义了零值库. |
2 | 指针运算 有四个算术运算符可用于指针:+ +, - ,+, - |
3 | Pointers vs Arrays 关系密切指针和数组之间. |
4 | Array o f指针 您可以定义数组来保存多个指针. |
5 | 指针指向指针 C ++允许指针指针等等. |
6 | >将指针传递给函数 通过引用或地址传递参数都可以通过被调用函数在调用函数中更改传递的参数. |
7 | 从函数返回指针 C ++允许函数返回指向局部变量的指针ble,静态变量和动态分配的内存. |