博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[C++]指针学习总结
阅读量:4946 次
发布时间:2019-06-11

本文共 776 字,大约阅读时间需要 2 分钟。

今晚重新看了一下C++的指针,总结如下:

有关数据类型的定义:

int i;//int类型变量
int *p;//指向int类型的指针变量
int a[n];//int型数组
int *p[n];//指针数组
int (*p)[n];//指向int型数组的指针
int func();//返回值类型为int的函数
int* func();//返回值为 指向int类型的指针变量 的函数
int (*p)();//指向返回值类型为int的函数
int **p;//指向指针的指针

对于指针类型p,p表示它所指向数据的地址,*p表示它所指向数据的值,&*p等价于p

对于普通类型i,i表示它的值,&i表示它在内存中的地址,*&i等价于i

指针的运算:

1.指针变量可以加/减一个整数
  p+i 表示 p+i*d (d表示p所指向的变量单元所占字节数)
2.指针变量赋值
  p=&a;//普通类型
  p=array;//数组类型
  p=&array[&];//数组的值
  p=max;//函数名
  p1=p2;//指针
3.指针可以有空值,表示指针不指向任何变量
  p=NULL 等价与 p=0 (因为系统已经定义#define NULL 0)
  注意p=0与p未赋值是不同的,未赋值表示p指向一个未知的单元
4.指针可以相减(如数组计算下标差),但不能相加(相加无意义)
5.指针可以比较,指向前面的元素的指针小于指向后面的元素的指针
6.不同类型的指针赋值需要强制转换类型
  p1=(int *)p2;
  p1=(char *)p2;
  p1=(double *)p2;

 

附件:

CppPointerExample.7z

下载地址:

转载于:https://www.cnblogs.com/cateats2016/archive/2013/01/02/2842455.html

你可能感兴趣的文章
使用js控制文本超出部分显示省略号
查看>>
HDU ACM 1180 诡异的楼梯 (优先队列 + 广搜)
查看>>
深入理解css浮动
查看>>
Android 开发者福利Google Developers中国网站发布
查看>>
【模板】线段树 2
查看>>
《零基础入门学习Python》学习过程笔记【017函数】
查看>>
Block Demo
查看>>
LintCode Coins in a Line III
查看>>
Oracle定义varchar2()类型存储汉字的长度问题
查看>>
python 2.7 pip install plt 报错,应该是 pip install matplotlib
查看>>
C# 解压缩
查看>>
Centos7安装教程
查看>>
ABAP术语-ALE
查看>>
删除SVN信息
查看>>
IDEA 转移C盘 .IntelliJIdea 索引目录
查看>>
CentOS 6通过yum升级Git
查看>>
python接口自动化测试三:代码发送HTTP请求
查看>>
POJ2386:Lake Counting(DFS)
查看>>
poj2411_状压dp
查看>>
Error running 'run': data.userName must not be null
查看>>