[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位 ...
随机推荐
- Golang知识图谱
原:https://www.processon.com/view/link/5a9ba4c8e4b0a9d22eb3bdf0?from=timeline 百度脑图重制:http://naotu.bai ...
- GBDT 详解分析 转+整理
GBDT DT 回归树 Regression Decision Tree 梯度迭代 GBDT工作过程实例 需要解释的三个问题 - 既然图1和图2 最终效果相同,为何还需要GBDT呢? - Gradie ...
- 最小生成树 prime+heap
改一个错误真不容易,刚开始没有加上used数组,没有判断每个顶点是否已经加入到数组当中,结果同一个顶点被pop不止一次. struct edge{int to,cost;}; typedef pair ...
- ArcGIS Server缓存清理
ArcGIS 发布服务,如果数据源没有注册到服务器话,会将数据复制到服务器指定目录.当发布一些较大的影像服务时,这种数据拷贝相当耗时. 所以,可以将数据粗处目录注册到ArcGIS Server服务器 ...
- python 3 往Excel 中的写入内容但不覆盖原内容
EXCEL 写入数据保持原样式 import xlwt import xlrd import xlutils import xlutils.copy class ExcelHandle(): def ...
- MSSQL:查看所有触发器信息的命令
转自:http://www.2cto.com/database/201307/228708.html 编写程序,有时或为了偷懒,或为更简单地实现所需功能,使用了触发器.这可是把双刃剑,用得不好,程序出 ...
- fiddler 修改
很多新手学习fiddler抓包的同学们都会对https网站抓包难或者抓不起来的问题无所适从,想寻求解决办法,没问题,这节课就来解决你的疑问! 最典型的网站就是目前的百度网站了,百度在近些年采用了htt ...
- 实时分析(在线查询),firehose---clickhouse
firehose---clickhouse 在Hive中适不适合像传统数据仓库一样利用维度建模hive新功能 Cube, Rollup介绍https://blog.csdn.net/moon_yang ...
- iOS系统NSNotificationCenter中的常用通知名称
//音频 AVF_EXPORT NSString *const AVAudioSessionInterruptionNotification //音频中断出现 AVF_EXPORT NSString ...
- Windows渗透利器之Pentest BOX使用详解(一)
内容概览: 知识科普 优缺点总结 功能参数详解翻译: 控制 ...