社区
C语言
帖子详情
关于数组指针的问题:
seraphimpk
2006-10-20 12:35:54
int a=[1, 2, 3]; //定义数组
int (*p)[3]; //定义指向整型数组的指针
int *ptr; //定义指针
p = a; //指向数组a
ptr = a; //指向数组a 这个和p=a有什么区别??
cout<<*(*p+2)<<endl;
cout<<*(ptr+2)<<endl; //这两句都是输出3,代码里区别是怎么产生的呢?
谢谢大家了
...全文
390
20
打赏
收藏
关于数组指针的问题:
int a=[1, 2, 3]; //定义数组 int (*p)[3]; //定义指向整型数组的指针 int *ptr; //定义指针 p = a; //指向数组a ptr = a; //指向数组a 这个和p=a有什么区别?? cout<<*(*p+2)<<endl; cout<<*(ptr+2)<<endl; //这两句都是输出3,代码里区别是怎么产生的呢? 谢谢大家了
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weijiangshanwww
2006-10-20
打赏
举报
回复
差不多
seraphimpk
2006-10-20
打赏
举报
回复
指向数组的指针。指针值为数组的地址!
==================================================
嘿嘿,‘天气预报’的这句话掷地有声,拨云见日啊。
是不是理解为:*p是数组的地址,而ptr直接就是数组的地址了?
完了,我觉得现在越学越差劲了
ctu_85
2006-10-20
打赏
举报
回复
哦
int a=[1,12,23]; //定义数组
int (*p)[3]; //定义指向整型数组的指针
int *ptr; //定义指针
p = a; //指向数组a
ptr = a; //指向数组a 这个和p=a有什么区别??
cout<<*(*p+2)<<endl;
cout<<*(ptr+2)<<endl;
麻烦看看
seraphimpk
2006-10-20
打赏
举报
回复
结果是多少啊?
=============================
越界了,应该,得到一个毫无意义的值
ctu_85
2006-10-20
打赏
举报
回复
晕
估计错了
===========================
嘿嘿,是我举例没举好
结果是?
ctu_85
2006-10-20
打赏
举报
回复
不明中
糊涂了
weijiangshanwww
2006-10-20
打赏
举报
回复
指向数组的指针。指针值为数组的地址!
seraphimpk
2006-10-20
打赏
举报
回复
cout<<*(*p+2)<<endl;
cout<<*(ptr+2)<<endl;
====================
第一个是先取到数组的地址,因为是指向数组的指针,然后再从数组中取数
第二个直接指向了数组地址,所以取一次就可以了!
=====================================================
不是很明白,猜一下:*p是取数组的地址?那p又是什么呢?
seraphimpk
2006-10-20
打赏
举报
回复
晕
估计错了
===========================
嘿嘿,是我举例没举好
weijiangshanwww
2006-10-20
打赏
举报
回复
cout<<*(*p+2)<<endl;
cout<<*(ptr+2)<<endl;
====================
第一个是先取到数组的地址,因为是指向数组的指针,然后再从数组中取数
第二个直接指向了数组地址,所以取一次就可以了!
ctu_85
2006-10-20
打赏
举报
回复
结果是多少啊?
ctu_85
2006-10-20
打赏
举报
回复
晕
估计错了
ctu_85
2006-10-20
打赏
举报
回复
cout<<*(*p+2)<<endl;
改为
cout<<*(*p+10)<<endl;
看看结果是什么
我没编译器
估计是11
seraphimpk
2006-10-20
打赏
举报
回复
表示p指向数组a的地址
在这段代码中是一个意思
========================================
那为什么之后的语句要得出相同的结果,表现形式却差了一个*:
cout<<*(*p+2)<<endl;
cout<<*(ptr+2)<<endl;
ctu_85
2006-10-20
打赏
举报
回复
int (*p)[3]; //定义指向整型数组的指针
表示p是一个指针变量,指向一个包含3个整型元素的一维数组
ptr = a; //指向数组a
表示p指向数组a的地址
在这段代码中是一个意思
seraphimpk
2006-10-20
打赏
举报
回复
cout<<*(*p+2)<<endl;
cout<<*(ptr+2)<<endl; //这两句都是输出3,代码里区别是怎么产生的呢?
========================================================
因为数据组织的格式不一样,所以访问的方式不一样。
========================================================
兄弟,具体是什么区别呢?*p对于ptr来说可是又取了一次值啊
weijiangshanwww
2006-10-20
打赏
举报
回复
cout<<*(*p+2)<<endl;
cout<<*(ptr+2)<<endl; //这两句都是输出3,代码里区别是怎么产生的呢?
========================================================
因为数据组织的格式不一样,所以访问的方式不一样。
lw1a2
2006-10-20
打赏
举报
回复
int a[]={1, 2, 3}; //定义数组
int (*p)[3]; //定义指向整型数组的指针
int *ptr; //定义指针
p = &a; //指向数组a
ptr = a; //指向数组a 这个和p=a有什么区别??
cout<<*(*p+2)<<endl;
cout<<*(ptr+2)<<endl; //这两句都是输出3,代码里区别是怎么产生的呢?
weijiangshanwww
2006-10-20
打赏
举报
回复
int a=[1, 2, 3]; //定义数组
int (*p)[3]; //定义指向整型数组的指针
int *ptr; //定义指针
p = a; //指向数组a
ptr = a; //指向数组a 这个和p=a有什么区别??
=====================================================
都是可指想数组的。
但是因为指针类型不一样,所以指针内的数据组织格式不一样。(但数据都一样)
seraphimpk
2006-10-20
打赏
举报
回复
ctu_85(青灯照壁人初睡,冷雨敲窗被未温)
#include<iostream>
using namespace std;
int main(){
int a[3]={1,12,23}; //定义数组
int (*p)[3]; //定义指向整型数组的指针
int *ptr; //定义指针
p = &a; //指向数组a
ptr = a; //指向数组a 这个和p=a有什么区别??
cout<<*(*p+2)<<endl;
cout<<*(ptr+2)<<endl;
system("PAUSE");
}
得到的结果是23,23
编译器是dev-c++
成为高手前必懂的TCP干货
欢迎添加华为云小助手微信(微信号:HWCloud002或HWCloud003),输入关键字“加群”,加入华为云线上技术讨论群;输入关键字“最新活动”,获取华为云最新特惠促销。华为云诸多技术大咖、特惠活动等你来撩! 目录 一、起源 二、TCP 协议 TCP 的特点? 怎么理解全双工? TCP 的数据包如何组织? 三、TCP 工作流程...
TCP系列:TCP 干货
TCP 干货 前言 今天博主将为大家分享TCP系列:TCP 干货,不喜勿喷,如有异议欢迎讨论! 整理一下 TCP 的一些知识要点,作为一名开发者来说,尽管有那么多的基础设施(框架、组件)帮我们屏蔽了这些细节。当我仍然认为了解它的一些基本原理必有些裨益,尤其是当你在分布式环境上遇到一些棘手
问题
时,一些原理性的知识可能会让你快速找到答案,有一个强大的地基才能写出健壮的程序! 起源 TCP 是传输层...
C语言
70,040
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章