C/C++ 数组与指针
#include <iostream>
using namespace std;
int main()
{
char *a[]={"ab","ccs","html"};
char **pa =a;
cout << pa<<endl; //0x7fff3f66ecd0
cout << *pa<<endl; //ab
cout << **pa<<endl; //a
cout << ++*pa<<endl; //b
cout << *++pa<<endl; //css
cout << ++*++pa<<endl; //tml
cout << ++**pa; //signal: segmentation fault (core dumped)
return 0;
}
编译器不识别数组 数组就是指针a[]就是 *a
**pa 就是a
pa就是a的别名
没有++**pa这种,因为**pa是char
++和*是等优先级的 且从右到左
C语言优先级
优先级
|
运算符
|
名称或含义
|
使用形式
|
结合方向
|
说明
|
1
|
[]
|
数组下标
|
数组名[常量表达式]
|
左到右
|
|
()
|
圆括号
|
(表达式)/函数名(形参表)
|
|||
.
|
成员选择(对象)
|
对象.成员名
|
|||
->
|
成员选择(指针)
|
对象指针->成员名
|
|||
2
|
-
|
负号运算符
|
-常量
|
右到左
|
单目运算符
|
(类型)
|
强制类型转换
|
(数据类型)表达式
|
|||
++
|
自增运算符
|
++变量名
|
单目运算符
|
||
--
|
自减运算符
|
--变量名
|
单目运算符
|
||
*
|
取值运算符
|
*指针变量
|
单目运算符
|
||
&
|
取地址运算符
|
&变量名
|
单目运算符
|
||
!
|
逻辑非运算符
|
!表达式
|
单目运算符
|
||
~
|
按位取反运算符
|
~表达式
|
单目运算符
|
||
sizeof
|
长度运算符
|
sizeof(表达式)
|
|||
3 |
/
|
除
|
表达式/表达式
|
左到右 |
双目运算符
|
*
|
乘
|
表达式*表达式
|
双目运算符
|
||
%
|
余数(取模)
|
整型表达式/整型表达式
|
双目运算符
|
||
4
|
+
|
加
|
表达式+表达式
|
左到右
|
双目运算符
|
-
|
减
|
表达式-表达式
|
双目运算符
|
||
5
|
<<
|
左移
|
变量<<表达式
|
左到右
|
双目运算符
|
>>
|
右移
|
变量>>表达式
|
双目运算符
|
||
6
|
>
|
大于
|
表达式>表达式
|
左到右
|
双目运算符
|
>=
|
大于等于
|
表达式>=表达式
|
双目运算符
|
||
<
|
小于
|
表达式<表达式
|
双目运算符
|
||
<=
|
小于等于
|
表达式<=表达式
|
双目运算符
|
||
7
|
==
|
等于
|
表达式==表达式
|
左到右
|
双目运算符
|
!=
|
不等于
|
表达式!= 表达式
|
双目运算符
|
||
8
|
&
|
按位与
|
表达式&表达式
|
左到右
|
双目运算符
|
9
|
^
|
按位异或
|
表达式^表达式
|
左到右
|
双目运算符
|
10
|
|
|
按位或
|
表达式|表达式
|
左到右
|
双目运算符
|
11
|
&&
|
逻辑与
|
表达式&&表达式
|
左到右
|
双目运算符
|
12
|
||
|
逻辑或
|
表达式||表达式
|
左到右
|
双目运算符
|
13
|
?:
|
条件运算符
|
表达式1? 表达式2: 表达式3
|
右到左
|
三目运算符
|
14
|
=
|
赋值运算符
|
变量=表达式
|
右到左
|
|
/=
|
除后赋值
|
变量/=表达式
|
|||
*=
|
乘后赋值
|
变量*=表达式
|
|||
%=
|
取模后赋值
|
变量%=表达式
|
|||
+=
|
加后赋值
|
变量+=表达式
|
|||
-=
|
减后赋值
|
变量-=表达式
|
|||
<<=
|
左移后赋值
|
变量<<=表达式
|
|||
>>=
|
右移后赋值
|
变量>>=表达式
|
|||
&=
|
按位与后赋值
|
变量&=表达式
|
|||
^=
|
按位异或后赋值
|
变量^=表达式
|
|||
|=
|
按位或后赋值
|
变量|=表达式
|
|||
15
|
,
|
逗号运算符
|
表达式,表达式,…
|
左到右
|
从左向右顺序运算
|
C/C++ 数组与指针的更多相关文章
- 把《c++ primer》读薄(4-2 c和c++的数组 和 指针初探)
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 问题1.我们知道,将一个数组赋给另一个数组,就是将一个数组的元素逐个赋值给另一数组的对应元素,相应的,将一个vector 赋给另 ...
- C语言核心之数组和指针详解
指针 相信大家对下面的代码不陌生: int i=2; int *p; p=&i;这是最简单的指针应用,也是最基本的用法.再来熟悉一下什么是指针:首先指针是一个变量,它保存的并不是平常的数据,而 ...
- 《征服 C 指针》摘录3:数组 与 指针
一.数组 和 指针 的微妙关系 数组 是指将固定个数.相同类型的变量排列起来的对象. 正如之前说明的那样,给指针加 N,指针前进“当前指针指向的变量类型的长度 X N”. 因此,给指向数组的某个元素的 ...
- C指针-数组和指针的归一
int bArr[] = {1,2,3}; int *iarr = bArr; *iarr = 6; printf("%d\n",*iarr); printf("%d\n ...
- 《C专家编程》第四章——令人震惊的事实:数组和指针并不相同
数组和指针是C语言里相当重要的两部分内容,也是新手程序员最容易搞混的两个地方,本章我们锁定指针与数组,探讨它们的异同点. 首先来看指针与数组在声明上的区别: int a[10]; int *p; 很明 ...
- (C语言)数组与指针的区别
以前常常听过这种说法,说数组和指针这两者比较像,但是不能混淆,可是一直没能理解.刚刚在李云的<专业嵌入式软件开发>中,看了讲述数组与指针区别的一章,似乎有所领悟.本着知乎上看到的这张图,我 ...
- C语言教学--二维数组和指针的理解
对于初学者对二维数组和指针的理解很模糊, 或者感觉很难理解, 其实我们和生活联系起来, 这一切都会变得清晰透彻. 我们用理解一维数组的思想来理解二维数组, 对于一维数组,每个箱子里存放的是具体的苹果, ...
- 【C语言学习】《C Primer Plus》第10章 数组和指针
学习总结 1.数组初始化方式: int a[]={1,2,3} int a[SIZE]={1,2,3} //SIZE是宏定义,数组初始化个数不能大于SIZE,否则报错:当个数小 //SIZE,自动补0 ...
- C语言学习004:数组与指针
在C语言中,字符串实际上就是字符数组,在内存中字符串"Shatner"存储的形式是这样的
- C语言--指向多维数组的指针和指针数组
#include <stdio.h> //void show(char *p[]); ]); int main(){ ][]={","abc","x ...
随机推荐
- IT兄弟连 Java语法教程 Java的发展历程
只有少数几种编程语言对程序设计带来过根本性的影响.其中,Java的影响由于迅速和广泛而格外突出.可以毫不夸张的说,1995年Sun公司发布的Java1.0给计算机程序设计领域带来了一场变革.这场变革迅 ...
- 第九组 通信3班 063 OSPFv2与OSPFv3综合实验
实验目的 1. 掌握 OSPFv3(v2) 的配置方法 2. 掌握在帧中继环境下 OSPFv3 (v2)的配置方法 3. 掌握 OSPFv3(v2) NSSA 的配置方法 4. 掌握外部路由汇总的配置 ...
- Java基础笔记(二)——配置环境变量
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 到此处下载jdk,并安装.(选 ...
- 2、CreateJS介绍-TweenJS
需要在html5文件中引入的CreateJS库文件是easeljs-0.7.1.min.js和tweenjs-0.5.1.min.js HTML5文件如下: <!DOCTYPE html> ...
- JMeter(5) JMeter之BeanShell使用
BeanShell介绍 BeanShell是用Java写成的,一个小型的.免费的.可以下载的.嵌入式的Java源代码解释器,具有对象脚本语言特性.本篇只记录一下基本的使用.有以下五个组件: Beans ...
- BZOJ 1977: [BeiJing2010组队]次小生成树 Tree 倍增 最小生成树
好吧我太菜了又调了一晚上...QAQ 先跑出最小生成树,标记树边,再用树上倍增的思路,预处理出: f[u][i] :距离u为2^i的祖先 h[u][i][0/1] :距u点在2^i范围内的最长边和次长 ...
- shell 获得调用的python脚本的print值和错误log
1. shell 获得调用的python脚本的print值 python test.py > out.log 2.shell 获得调用的python脚本的错误log python test.py ...
- oracle备份imp命令大全
oracle中imp命令详细解释 Oracle的导入有用程序(Import utility)同意从数据库提取数据,而且将数据写入操作系统文件.imp使用的基本格式:imp[username[/pass ...
- 关于office转换成pdf组件服务中的DCOM配置问题
在开始->运行 中录入“dcomcnfg” 单击“确定”后弹出“组件服务”窗口 依次选择“组件服务”->“计算机”->“我的电脑”->“DCOM配置” 在“DCOM配置”下找到 ...
- 《移动Web前端高效开发实战》笔记3--代码检查任务
在项目的开发过程中,统一的代码风格对于项目的可协作性以及可维护性来说相当重要,因此可以采用一些插件来进行代码风格的检查. 本例中的源文件包含两类:Sass文件和采用ECMAScript 6规范的Jav ...