×

指针c++用法

指针c++用法(C++里 一般在什么情况下使用指针,怎样使用指针对内存的消耗最小)

admin admin 发表于2024-07-15 08:18:43 浏览9 评论0

抢沙发发表评论

大家好,如果您还对指针c++用法不太了解,没有关系,今天就由本站为大家分享指针c++用法的知识,包括C++里 一般在什么情况下使用指针,怎样使用指针对内存的消耗最小的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

本文目录

C++里 一般在什么情况下使用指针,怎样使用指针对内存的消耗最小

C++中主要在以下三种情况下使用指针:1.对同一块内存空间分时存储多个同类型的数据。过去此时使用指针的目的是节省内存空间,现在主要是实现数据之间的互斥(现在内存够大了)。2.如果需要同时对一组同类型的数据进行多个侧面的组织,以有效支持多种不同性质的操作,可以是哟个多个指针数组来实现(比如对一组数分别进行升序和降序排列,可以用两组指针来实现)。3.对于连续存储着类型为t的许多值(比如数组),当需要依次进行某种处理时,可以不需要知道数组下表的情况下,用改变一个指针变量的值的方式依次访问。使用指针的目的,主要是方便操作,C++中提供指针,个人认为主要是为了提供对C的支持,因为指针在C++中可以完成的很多工作都可以被引用来取代。相对来说,指针在C中的作用更大。比如我通过一个函数调用,想返回多个值(想获得多个被修改后的值),一般只能用指针来实现;但在C++中就不一样了,你可以用引用来实现。

C++编程(指针)

关于如何运用指针,不是一句两句话能说清的,建议你还是看书吧,指针学不好的话,会很尴尬的,还是好好看书,建议你看c语言程序设计里关于指针的部分,比较详细~~~关于这段程序:#include《iostream》using namespce std;int main(){ int a={1,2,3,4,5,6,7,8,9}; int (*p); int i,j,temp; for(i=0;i《3;i++) for(j=i;j《3;j++) { temp=*(*(p+i)+j); *(*(p+i)+j)=*(*(p+j)+i); *(*(p+j)+i)=temp; } for(int m=0;m《3;m++) { for(int n=0;n《3;n++) cout《《*(*(p+m)+n)《《" "; cout《《endl; } return 0;}就是这样,希望对你有帮助~

C++基础教程-指针

使用指针可以直接操作内存地址,提高效率,缺点是绕弯比较难理解,本教程为大家介绍C++语言中的指针。1、启动 Geany1)点菜单“应用程序-编程-Geany”启动 Geany ,新建一个 c++ 源程序;2)点菜单“文件-另存为”命令,以“ptr”为文件名,保存文件到自己的文件夹;2、指针变量1)使用指针前也要先定义,用 * 号来定义,赋值用其他变量的地址,也可以初始化为空 NULL;输入下面的代码:int a = 25;int *p = NULL;p = a;2)第一句定义一个整型变量 a,每个变量都有内存地址,用 a 命令得到变量的地址,第二句定义一个指针变量,类型是整型,星号 * 是定义符号,NULL 表示赋值为空值,第三句是给指针变量 p 赋值,值是变量 a 的地址,格式形如 0x123456;3)接着我们来显示一下各个变量的值,跟各自的类型相对应;cout"a = "a;cout"a= "a;cout"p = "p;4)a 是整型变量,里面装的是整数,a 是取地址操作符,得到的是地址,p 是一个指针变量,里面存放的地址,p 给的是 a 的地址,所以两个地址是相同的;5)接下来我们来看利用指针操作它对应的变量,继续输入下面的代码;cout"*p= "*pendl;6)这儿的 *p 不是定义指针,因为星号 * 前面没有类型,而且 p 已经定义过,不能重复定义,这儿的 *p 是间接引用,指向的是 a,因为 p 里存放的是 a 的地址,因此 *p 的值是 25;7)利用 *p 可以对变量 a 进行操作,例如下面的代码给 a 重新赋值;*p = 16;cout "a = "a;#include iostreamusing namespace std;int main(int argc, char** argv){int a = 25;int *p = NULL; //定义指针变量,并初始化p = a; //赋值给指针变量cout"a = "aendl;cout"a= "aendl;cout"p = "pendl;coutendl;cout"*p= "*pendl;coutendl;*p = 16; //间接引用,不是定义指针cout "a = "a;return 0;}

C/C++字符指针怎么用

一、对于非char型数组

(一)源代码

#include 《iostream》using namespace std;int main(){int shuzu = {1, 2, 3};int *p1 = &shuzu;cout《《*p1《《endl《《p1《《endl《《&p1《《endl《《endl;cout《《&shuzu《《endl;return 0;}

(二)运行结果

二、对于char型数组

(一)源代码

#include 《iostream》using namespace std;int main(){char shuzu = "hello";char *p1 = &shuzu;cout《《*p1《《endl《《p1《《endl《《&p1《《endl《《endl;cout《《&p1《《endl《《&p1+1《《endl《《&p1+2《《endl《《&p1+3《《endl;return 0;}

(二)运行结果

说明:

对于非char型数组(指向数组的指针变量)p1,使用cout时*p1表示数组第一个元素的值,p1表示第一个元素的首地址,&p1表示存储数组名称的指针的地址。

对于char型数组(指向数组的指针变量)p1,使用count时*p1表示数组第一个元素的值(首字符);p1表示第一个元素的首地址,会输出全部数组元素;&p1输出第一个元素的首地址。

&p1+i表示p1指针指向的数组的元素的首地址,i表示偏移量,即相当数组第一个元素的偏移量。如p1+2表示第三个元素。

关于指针c++用法,C++里 一般在什么情况下使用指针,怎样使用指针对内存的消耗最小的介绍到此结束,希望对大家有所帮助。