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 ...
随机推荐
- 2019-CCPC广东省赛总结
2018年11月第一次参加ICPC区域赛青岛赛区,打铁了! 2019年5月第一次参加CCPC广东省赛,4题滚粗,C题莫队TLE13发,只拿了个铜牌! 教训总结: 比赛时千万不能犹豫,不能犹豫,不能犹豫 ...
- 几款常用的高质量web前端框架
http://blog.csdn.net/qianduankuangjia/article/details/78042944
- 【aspnetcore】抓取远程图片
找到要抓取的图片地址:http://i.imgur.com/8S7OaEB.jpg 抓取的步骤: 请求图片路径 获取返回的数据 将数据转换为stream 将stream转换为Image 保存Image ...
- Linux清空屏幕和清空当前输入的快捷键
Linux清空屏幕和清空当前输入的快捷键 但是实际上...放弃当前的命令,命令行提示符跳到下一行的有效命令是ctrl + c
- RDL Web报表抛出ReportServerException,已取消该操作
::, RsBase() [ERROR] - Microsoft.Reporting.WebForms.ReportServerException: 已取消该操作. ---> System.Op ...
- NPOI导出EXCEL后公式无结果,公式重新计算开关
但其实这个选项是可以控制的.在NPOI中,这个属性叫做XSSFSheet.ForceFormulaRecalculation. 打开该选项的话,代码为 sheet1.ForceFormulaRecal ...
- [原]Maven项目编译后classes文件中没有.xml问题
在做spring+mybatiss时,自动扫描都配置正确了,却在运行时出现了如下错误.后来查看target/classes/.../dao/文件夹下,发现只有mapper的class文件,而没有xml ...
- echarts Hello world 入门
<!DOCTYPE html> <html> <head> <title></title> <script type="te ...
- 剑指offer课外两道习题解法
1.定义一个函数,删除字符串中所有重复出现的字符,例如输入“google”,删除重复的字符之后的结果为“gole”. 解题思路:像这种求字符串的重复字符,并且去掉重复字符,我们一般可以用哈希 ...
- GoAccess自动分割Nginx日志
GoAccess 是一款开源的网站日志实时分析工具.GoAccess 的工作方式很容易理解,就是读取和解析 Apache/Nginx/Lighttpd 的访问日志文件 access log,然后以更友 ...