[c/c++] programming之路(19)、数组指针
一、指针运算
#include<stdio.h>
#include<stdlib.h> void main0(){
int a=;
int *p=&a;
printf("%d\n",*(p+));//变量没有初始化
printf("%x,%x\n",p,p+);//相隔一个元素大小
system("pause");
} //指针的乘除法没有意义
//加减法就是确定数组的元素之间相隔几个元素
void main(){
int a[];
/*for(int *p=a,i=0;p<a+10;p++,i++){
*p=i;
}*/
for (int *p = a + ,i=; p >= a; p--,i--)
{
*p = i;
}
system("pause");
}
二、指针赋值
#include<stdio.h>
#include<stdlib.h> void main3(){
//指针与整数不能直接赋值,如果需要赋值,强制类型转换
int *p=(int *);
int m=(int)&p;
} void main4(){
double a[] = {1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,0.0};
printf("%d\n",&a[]-&a[]);
//指针减法
//(0x300500+9*8-0x300500+3*8)/sizeof(double)
printf("%f\n",*(&a[]+));
//指针的加法
//0x300500+2*sizeof(double)
getchar();
} void main(){
int a[] = { , , , , , , , , , };
int *p = a;
//printf("%d\n", *++p);//++优先于*
while(p++<a+){
printf("%d,%x\n",*p,p);
} getchar();
}

三、指针高级运算
#include<stdio.h>
void main(){
double a[] = { , , , , , , , , , };
double *p = a;
//printf("%d\n", sizeof(*p)); 8
//printf("%d\n", sizeof(*p++)); 8
//printf("%d\n", sizeof(p++)); 4
//printf("%f\n", *p++); 11
//printf("%f\n", *++p); 2
/*printf("%f\n", ++*p); 12
printf("%f\n", a[0]); 12 */
/*printf("%f\n", (*p)++); 11
printf("%f\n", a[0]); 12 */
/*printf("%f\n", ++(*p)); 12
printf("%f\n", a[0]); 12 */
getchar();
}
四、指针与二维数组


#include<stdio.h>
#include<stdlib.h> void main(){
int a[][] = { ,,,,,,,,,,, };
printf("a=%d\n", sizeof(a));//数组大小
int (*p)[]=a;//用一个指向有四个元素的一维数组的指针指向a
printf("p=%d,*p=%d,*p+0=%d\n", sizeof(p), sizeof(*p), sizeof(*p + ));
//p行指针
//*p取出行指针内容,可以得到一行多大
//*p+0,列指针:在某一行,取出第0个元素的地址 for (int i = ; i < ; i++)
{
for (int j = ; j < ; j++)
{
//下面三行等价
printf("%d,%x\t", p[i][j],&p[i][j]);
printf("%d,%x\t",*(p[i]+j) , p[i]+j);
printf("%d,%x\t", *(*(p+i) + j), *(p+i) + j);
printf("\n");
}
}
system("pause");
}

[c/c++] programming之路(19)、数组指针的更多相关文章
- Z :彻底了解指针数组,数组指针以及函数指针 [复
原创 :彻底了解指针数组,数组指针以及函数指针 [复制链接] 00 roking 白手起家 帖子 60 主题 16 精华 0 可用积分 74 专家积分 0 在线时间 0 小时 注册时间 2003-10 ...
- 指针数组 vs 数组指针
指针数组,故名思义,就是指针的数组,数组的元素是指针: 数组指针,同样,就是直想数组的指针. 简单举例说明: int *p[2]; 首先声明了一个数组,数组的元素是in ...
- [C++ Primer Plus] 第7章、函数(一)程序清单——递归,指针和const,指针数组和数组指针,函数和二维数组
程序清单7.6 #include<iostream> using namespace std; ; int sum_arr(int arr[], int n);//函数声明 void ma ...
- C/C++——二维数组与指针、指针数组、数组指针(行指针)、二级指针的用法
本文转载自:https://blog.csdn.net/qq_33573235/article/details/79530792 1. 二维数组和指针 要用指针处理二维数组,首先要解决从存储的角度对二 ...
- C语言数组指针(指向数组的指针)
注意:数组指针的定义,与指针数组的区别 转载:http://c.biancheng.net/cpp/biancheng/view/162.html 指向多维数组元素的指针变量 ① 指向数组元素的指针变 ...
- C语言基础 (9) 数组指针
复习 只要把地址拿到就能这么操作.. (这里是合法的地址,不是野指针) 只有定义变量后,此变量的地址才是合法的地址 野指针就是保存没有意义地址的指针变量 操作野指针变量本身不会有任何问题 操作野指针所 ...
- C与指针(结构体指针,函数指针,数组指针,指针数组)定义与使用
类型 普通指针 指针数组(非指针类型) 数组指针 结构体指针 函数指针 二重指针 定义方式 int *p; int *p[5]; int (*p)[5]; int a[3][5]; struct{.. ...
- 问题:C++ 删除数组指针实用 delete []变量 汇编怎么实现的?
问题:C++ 删除数组指针实用 delete []变量 汇编怎么实现的?
- c/c++ 函数指针 指针函数 数组的引用 指针数组 数组指针
1.指针数组数组指针 引用数组 数组的引用 int *a[10] 指针数组 每一个元素都是一个指针 Int (*a)[10] 数组指针 P指向一个含有10个元素的数组 Int (&a)[10] ...
- C/C++中的指针数组和数组指针
1. 指针数组 定义:int *p[n],由于[]的优先级高于*,p和[]结合成一个数组,该数组的元素存储的是int类型的指针,由于数组内容是指针,因此p+1的步长是sizeof(int*),在32位 ...
随机推荐
- [ICPC 北京 2017 J题]HihoCoder 1636 Pangu and Stones
#1636 : Pangu and Stones 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 In Chinese mythology, Pangu is the fi ...
- Jmeter中使用SSH插件,连接远程linux机器执行命令
一.Why 在云主机测试中,需要使用SSH协议连接云主机进行相关操作 在python中使用paramiko库很好实现,在如果要使用jmeter做性能测试时,怎么做? 二.解决 既然原生jmeter没有 ...
- layui---form表单模块
虽然对layui比较熟悉了,但是今天有时间还是将layui的form表单模块重新看一下. https://www.layui.com/doc/modules/form.html 一.更新渲染 layu ...
- python基础类型—字典
字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必 ...
- phpmyadmin新姿势getshell
旁白:在一个有WAF.并且mysql中的Into outfile禁用的情况下,我该如何getshell? 作者:倾旋email:payloads@aliyun.com投稿联系:service@cora ...
- java学习(二)--- 变量类型
变量声明 type identifier [ = value][, identifier [= value] ...] ; 局部变量: 1.局部变量声明在方法.构造方法.语句块中 2.局部变量在方法. ...
- Python学习之旅(十八)
Python基础知识(17):面向对象编程(Ⅱ) 获取对象信息 在不知道对象信息的情况下,我们想要去获取对象信息,可以使用以下方法 1.type (1)判断对象类型 >>> type ...
- python全栈开发 * 35 知识点汇总 * 180720
35 socket 一些常用方法 验证客户端信息 添加随机字符串 socketserver模块 一.socket模块中一些常用方法1.send和sendall的区别2.conn.getpeername ...
- Luogu 1093 - 奖学金 - [排序水题]
题目链接:https://www.luogu.org/problemnew/show/P1093 题目描述某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金.期末,每个学生 ...
- [bash] 几个以前没注意过的小知识
1. BASH_SOURCE[0] 是啥意思,以及获取当前脚本所在目录 BASH_SOURCE[] 等价于 BASH_SOURCE, 取得当前执行的shell文件所在的路径及文件名. 如/home/ ...