[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位 ...
随机推荐
- 接口自动化测试 (三)request.post
上一节介绍了 requests.get() 方法的基本使用,本节介绍 requests.post() 方法的使用: 本文目录: 一.方法定义 二.post方法简单使用 1.带数据的post 2 ...
- 深入理解Java虚拟机(笔记)
内存分配: 为对象分配内存有两种方式,第一种是“指针碰撞”,也就是把内存分为两边,一边是已使用区域,另一边是未分配区域,分界线用指针记录,当要分配内存时,只需把指针向未分配区域移动需要的空间即可,通常 ...
- 记一次Springboot启动异常
启动Springboot项目报以下异常: org.springframework.context.ApplicationContextException: Unable to start web se ...
- python全栈开发* 02 知识点汇总 * 180531
运算符和编码 一 格式化输出 1 .输入 name ,age , job , hobby. 输出 : --------------- info of Mary ------------ ...
- [No0000186]治愈系课程教材 第一课
一部分:时态 时态有时间和特点组成 时间:现在.过去.将来 特点:一般.完成.进行.完成进行 所以时态总共有12种(加上过去将来的时间又多出4种时态,总共16种) 一般现在时 一般过去时 一般将来时 ...
- en-zh(社会问题)social problems-2
让屏幕代替父母陪孩子?世卫组织:这样是不对的! No sedentary screen time for babies, WHO says Babies and toddlers should not ...
- 委托/lambda表达式/事件
委托 委托是执行安全的类,它的使用方式与类类似(即都需要定义再实例化),不同在于,类在实例化之后叫对象或类的实例,但委托在实例化后仍叫委托,委托可以把函数作为参数传递. 语法声明: delegate ...
- 【转载】word2vec原理推导与代码分析
本文的理论部分大量参考<word2vec中的数学原理详解>,按照我这种初学者方便理解的顺序重新编排.重新叙述.题图来自siegfang的博客.我提出的Java方案基于kojisekig,我 ...
- 如何在一个电脑上使用两个github账号
问题描述:公司电脑上默认使用的是公司的github账号,如果希望写一些代码放到个人的github账号上,就需要配置让一个电脑上可以使用两个github账号 原理:管理两个SSH key 1.生成两个S ...
- python练习题-day14
一.选择题 1. python不支持的数据类型有:A. charB. intC. floatD. list ans:A 2.x = ‘foo’y = 2print(x + y) A. fooB. fo ...