社区
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,代码里区别是怎么产生的呢?
谢谢大家了
...全文
358
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++
Linux C编程进阶之
指针
与
数组
解析
数组
与
指针
是C语言的难点和重点,如果不懂
指针
和
数组
,就谈不上会C语言,更谈不上精通,本教程凝结了多年讲授C语言编程的心血,总结出了容易理解、简单使用的
指针
数组
分析技巧,通过该技巧分析出
数组
名、多维
数组
、多级
指针
的本质含义,通过这个技巧,让菜鸟告别C语法错误,正真成为C语言编程高手,精通C语言。
数组
指针
和
指针
数组
首先,理解一下
数组
指针
和
指针
数组
这两个名词: “
数组
指针
”和“
指针
数组
”,只要在名词中间加上“的”字,就知道中心了——
数组
的
指针
:是一个
指针
,什么样的
指针
呢?指向
数组
的
指针
。
指针
的
数组
:是一个
数组
,什么样的
数组
呢?装着
指针
的
数组
。 然后,需要明确一个优先级顺序:()>[]>*,所以: (*p)[n]:根据优先级,先看括号内,则p是一个
指针
,这个
指针
指向一个一维
数组
,
数组
长...
指针
数组
与
数组
指针
详解
指针
数组
与
数组
指针
详解1.什么是
指针
数组
和
数组
指针
?
指针
数组
:
指针
数组
可以说成是”
指针
的
数组
”,首先这个变量是一个
数组
,其次,”
指针
”修饰这个
数组
,意思是说这个
数组
的所有元素都是
指针
类型,在32位系统中,
指针
占四个字节。
数组
指针
:
数组
指针
可以说成是”
数组
的
指针
”,首先这个变量是一个
指针
,其次,”
数组
”修饰这个
指针
,意思是说这个
指针
存放着一个
数组
的首地址,或者说这个
指针
指向一个
数组
的首地址。 根
指针
数组
与
数组
指针
1、
指针
数组
:是指一个
数组
里面装着
指针
,也即
指针
数组
是一个
数组
定义形式:int *a[10]; 2、
数组
指针
:是指一个指向
数组
的
指针
,它其实还是一个
指针
,只不过是指向
数组
而已; 定义形式:int (*p)[10]; 其中,由于[]的优先级高于*,所以必须添加(*p) 区分方法: 主要看后面的两个字是什么(前面是修饰作用),因此
指针
数组
是
数组
,而
数组
指针
是
指针
。 ...
C语言之
数组
指针
、
指针
数组
文章目录
数组
和
指针
问题
导引作为函数参数的
数组
名
数组
指针
:指向
数组
的
指针
指针
数组
:
数组
元素为
指针
栈区
指针
数组
数组
和
指针
问题
导引
指针
和
数组
并不是相等的。为了说明这个概念,请考虑下面两个声明: int a[10]; int *b; 声明一个
数组
时,编译器根据声明所指定的元素数量为
数组
分配内存空间,然后再创建
数组
名,指向这段空间的起始位置。声明一个
指针
变量的时候,编译器只为
指针
本身分配内存空间,并不为任何整型值分配内存空间,
指针
并未初始化指向任何现有的内存空间。 因此,表达式a是完全合法的,但是表达式b却是
C语言
69,368
社区成员
243,081
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章