【C++/C】指针基本用法简介-A Summary of basic usage of Pointers.
基于谭浩强老师《C++程序设计(第三版)》做简要Summary。(2019-07-24)
一、数组与指针
1. 指针数组
一个数组,其元素均为指针类型数据,该数组称为指针数组。
(type_name * array_name[length])
char *point_array[]={"Basic", "C++", "Pascal"}; //1. 每一个数组内容均为一个char*类型的指针
char* point_array[3]={"Basic", "C++", "Pascal"};
(char*) point_array[3]={"Basic", "C++", "Pascal"};
2. 数组指针
二维数组的指针访问:
| 二维数组的指针访问: | |||
|---|---|---|---|
| p + i | p[i] | *(p + i) | 都表示array第 i+1 行的第 1 个元素的首地址 |
| *(p + i) + j | p[i] + j | &p[i][j] | 都表示array第 i+1 行, 第 j+1列元素的地址 |
| ((p + i) + j) | *(p[i]+j) | p[i][j] | 都表示array数组第 i+1 行, 第 j+1列元素的值 |
二、 const 指针使用简介
1. 指向常量的指针变量
经此定义后,不允许通过指针变量改变它指向的对象的值。
(const type_name * pointer_name)
int a = 12, b = 15;
const int *p = &a;
//Test
*p = 15; // 1. 通过p改变指向的对象a的值,非法。
p = &b; // 2. 将p改为指向b,合法。
a = 15; // 3.直接改变a的值,合法。
//Extension
const int a = 10; //1. a的值始终不变。
2. 常指针/常指针变量
经此定义后,指针变量的指向不能改变。
(type_name * const pointer_name)
int a = 4, b = 6;
int * const p2 = &a;
//Test
p2 = &b; //1. 不能改变P2指向,非法。
*p2 = 12; //2. 改变a的值,合法。
3. 指向常量的常指针
(1),(2)部分结合,指针变量指向一个固定的对象,该对象的值不能改变。
(const type_name * const pointer_name)
int a = 4, b = 6;
const int *const pt = &a;
//Test
pt = &b; //1. 不能改变pt指向,非法。
*pt = 12; //2. 通过pt改变a的值,非法。
a = 30; //3. 直接改变a的值,合法。
【C++/C】指针基本用法简介-A Summary of basic usage of Pointers.的更多相关文章
- IOS NSInvocation用法简介
IOS NSInvocation用法简介 2012-10-25 19:59 来源:博客园 作者:csj007523 字号:T|T [摘要]在 iOS中可以直接调用某个对象的消息方式有两种,其中一种就是 ...
- C,C++回文字符串判断(字符串指针的用法)
功能:输入一个字符串,判断是否为回文. 主要锻炼指针的用法. 1.C版 #include<stdio.h> int main() { ]; char a; ,flag=; while((a ...
- JodaTime用法简介
JodaTime用法简介 Java的Date和Calendar用起来简直就是灾难,跟C#的DateTime差距太明显了,幸好有JodaTime 本文简单罗列JodaTime的用法 package co ...
- Apache自带压力测试工具ab用法简介
ab命令原理 ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL进行访问.它的测试目标是基于URL的,因此,既可以用来测试Apache的负载压力,也可以测试nginx.lighthttp ...
- Postman用法简介
转自:http://blog.csdn.net/flowerspring/article/details/52774399 Postman用法简介 转载 2016年10月10日 09:04:10 10 ...
- C++第二课:指针常用法[个人见解]
在小编这里,没有任何学习知识的顺序,写到的东西对初学者肯定是有用处的,前提,你真的把C语言学完的那些初学者. 在讲明指针的知识前,或许有人一直说不会指针你学不会C++,或者说你所学C++的深度,全凭你 ...
- MSSQL Sql加密函数 hashbytes 用法简介
转自:http://www.maomao365.com/?p=4732 一.mssql sql hashbytes 函数简介 hashbytes函数功能为:返回一个字符,通过 MD2.MD4.MD5. ...
- java assert的用法简介【转】
assert的基本用法 assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制,如C,C++和Eiffel等,但是支持的形式不尽相同,有的是通过语言本身.有的是通过库 ...
- glVertexAttribPointer 用法简介
在内存中采用交叉模式存储,向gpu传入顶点数据的方法 GPU: #version 100 attribute highp vec2 aPosition; attribute highp vec2 a ...
随机推荐
- 为什么很多人坚信“富贵险中求”?
之家哥 2017-11-15 09:12:31 微信QQ微博 下载APP 摘要 网贷之家小编根据舆情频道的相关数据,精心整理的关于<为什么很多人坚信"富贵险中求"?>的 ...
- 51: Luogu 2485 模板
$des$ 1.给定y.z.p,计算y^z mod p 的值: 2.给定y.z.p,计算满足xy ≡z(mod p)的最小非负整数x: 3.给定y.z.p,计算满足y^x ≡z(mod p)的最小非负 ...
- 【题解】洛谷 P1449 后缀表达式
目录 题目 思路 \(Code\) 题目 P1449 后缀表达式 思路 栈.题目说的不是很清楚,没说包含什么操作.除法用整数除法就行. 先string读入字符串,然后从前往后看如果是个数字就入栈,如果 ...
- luogu P1447 [NOI2010]能量采集 欧拉反演
题面 题目要我们求的东西可以化为: \[\sum_{i=1}^{n}\sum_{j=1}^{m}2*gcd(i,j)-1\] \[-nm+2\sum_{i=1}^{n}\sum_{j=1}^{m}gc ...
- python url码转换 chr()码
爬虫生成带搜索词语的网址 1.字符串转为url编码 import urllib poet_name = "李白" url_code_name = urllib.quote(poet ...
- LSTM代码
tensorflow的关于LSTM的代码,经过反复的调试和修改,终于运行成功了,可以把训练过程的结果保存起来,然后预测的时候直接取出来.花了很长时间才把官网上的代码调试成功,里面的坑有很多需要填补,还 ...
- MyBatis传入参数为list、数组、map写法
1.foreach简单介绍: foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有item,index,collection,open,sep ...
- Redis简介及其安装
1.Redis NoSQL (Not noly SQL)不仅仅是SQL 属于非关系型数据库:Redis就属于非关系型数据库 传统的Mysql ,oracle ,sql server 等 都是关系型数据 ...
- 刷题记录:[De1CTF 2019]Giftbox && Comment
目录 刷题记录:[De1CTF 2019]Giftbox && Comment 一.知识点 1.sql注入 && totp 2.RCE 3.源码泄露 4.敏感文件读取 ...
- Windows下将网络共享目录挂载到指定文件夹
简述 因为某些原因,设计好的目录结构是不能动的,因此需要将网络共享目录挂载到指定目录下,以便扩容. 在Linux下这完全没有问题,但是Windows下的操作就稍微复杂一点. 1.直接使用net use ...