C++指针 续

转载 2016年08月28日 20:51:22

1. 指针常量、常量指针的概念和区别

常量指针是指--指向常量的指针,顾名思义,就是指针指向的是常量,即,它不能指向变量,它指向的内容不能被改变,不能通过指针来修改它指向的内容,但是指针自身不是常量,它自身的值可以改变,从而可以指向另一个常量。
指针常量是指--指针本身是常量。它指向的地址是不可改变的,但地址里的内容可以通过指针改变。它指向的地址将伴其一生,直到生命周期结束。有一点需要注意的是,指针常量在定义时必须同时赋初值。

2. 指针函数、函数指针的概念和区别

在C语言中,一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址.我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使该指针变量指向该函数.然后通过指针变量就可以找到并调用这个函数.我们把这种指向函数的指针变量称为“函数指针变量”.
函数指针变量定义的一般形式为:
类型说明符 (*指针变量名)();
其中“类型说明符”表示被指函数的返回值的类型.“(* 指针变量名)”表示“*”后面的变量是定义的指针变量.最后的空括号表示指针变量所指的是一个函数.

3.指针数组、数组指针的概念和区别

a.这两种形式没有任何区别,定义的都是char* 类型的指针,不过有的书上建议采用*和变量相靠近的写法,这样可以避免连续声明时的错误,例如:char *ptr,a;可以明显知道一个是指针的变量一个是char类型的变量。
b. 二维数组实际可以声明成指向指针的指针。这样在接受形参的时候,就可以用一个双重指针来接受。
void f(int **a) //怎么写? 


int a[100][100]; 
f(a);

c. 返回值是一个指针就可以实现了,不过返回的地址一定要是在堆空间申请的空间,或者是在静态区的空间。不要返回在函数栈中的地址,以防止在退出函数时,栈空间释放,成为幽灵内存。

c++中指针问题一个很好的例子

偶尔在问题区看到这个问题,感觉有助于对指针问题理解,所以记录一下,希望给看到的你一些帮助。...
  • guwuchangtian
  • guwuchangtian
  • 2017年06月03日 11:52
  • 650

c++的三种指针

1.指向常量的指针 指针所指的对象是常量,指针本身是常量。#include using namespace std; void main() { int stop; cons...
  • snicolashe
  • snicolashe
  • 2015年06月28日 10:24
  • 1283

深度长文教你彻底掌握C++/C指针

一.基础C++或者C里面最容易让人糊涂应该是指针了,不管是初学者甚至是有经验的童鞋有时候在用指针的时候也会出现一些很隐蔽的错误. 指针本身就是一个很绕的概念,而指针又能够和很多的结构比如数组(二维数...
  • xierhacker
  • xierhacker
  • 2016年09月13日 19:49
  • 8364

c/c++中指针的理解(初学者)

关于指针,大家肯定不陌生,一些初学者,想必会出现思绪混乱的情况,现在我就来帮大家缕一缕吧。(第一次写微博 有点小紧张) 大家应该了解一些计算机对内存的管理方式吧。操作系统会将内存单元进行编号,这些...
  • Allen_ww
  • Allen_ww
  • 2016年01月11日 19:41
  • 9560

C++指针的理解

我们知道,在计算机内存中可以通过变量名称作为标识符访问变量。这种方法,程序不需要关心数据在内存的物理地址;无论何时涉及变量时,它简单地使用标示符。 对于C++程序,计算机的内存就像一系列内存单元的组...
  • shenwanjiang111
  • shenwanjiang111
  • 2016年11月12日 18:41
  • 555

c++ 指针赋值

一、一级指针 char *a="a";char *b="b"; a=b;//这个是b把存的内容b给a,此时a的内容是b,所以指针与指针赋值实际也是传值,和普通变量一样。若a的内容变为c,则b的内容还是...
  • jackmacro
  • jackmacro
  • 2011年01月14日 10:11
  • 2757

C/C++ 使用delete删除指针需小心 “野指针”

本文转载自: 众所周知,最开始我们用new来创建一个指针,那么等我们用完它之后,一定要用delete将该指针删掉。但是,值得注意的是,难道就仅仅是删除这个指针这么简单的么?下面,我们用一个程序来说明...
  • m0_37901643
  • m0_37901643
  • 2017年06月06日 14:38
  • 1097

C++ 指针相加相减

如果两个指针向同一个数组,它们就可以相减,其结果可以分两个方面理解 1、对于内存块操作时,是两个指针之间的元素数目,例如: #include #include using namespace st...
  • xjqxzk2002
  • xjqxzk2002
  • 2013年07月05日 16:02
  • 885

C++指针长度size

1.说明:如果操作系统是32位,则指针是按32位寻址的,一个字节8位,所以得出其长度为32/8=42.代码void TestPointSize(char cArray[]){ cout int iAr...
  • yhm_js
  • yhm_js
  • 2011年01月14日 22:40
  • 6005

c/c++指针详解(二)----内存分配

1、内存分配的三种方式: 1)、从静态存储区分配。数据的内存在程序编译时已经被分配,该内存在整个运行期间长期驻留,不会被释放;程序结束时,由操作系统自动释放。这类数据包括静态数据和全局数据。 2)、从...
  • xbk123123
  • xbk123123
  • 2016年11月21日 19:09
  • 760
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++指针 续
举报原因:
原因补充:

(最多只允许输入30个字)