社区
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,代码里区别是怎么产生的呢?
谢谢大家了
...全文
368
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
作业
写回复
配置赞助广告
用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++
数组
指针
和
指针
数组
首先,理解一下
数组
指针
和
指针
数组
这两个名词: “
数组
指针
”和“
指针
数组
”,只要在名词中间加上“的”字,就知道中心了——
数组
的
指针
:是一个
指针
,什么样的
指针
呢?指向
数组
的
指针
。
指针
的
数组
:是一个
数组
,什么样的
数组
呢?装着
指针
的
数组
。 然后,需要明确一个优先级顺序:()>[]>*,所以: (*p)[n]:根据优先级,先看括号内,则p是一个
指针
,这个
指针
指向一个一维
数组
,
数组
长...
数组
指针
:指向
数组
的
指针
文章目录一、
数组
指针
定义二、
数组
指针
赋值三、
数组
指针
访问四、定义
数组
指针
时的注意要点 一、
数组
指针
定义
数组
指针
定义: #include <stdio.h> #include <windows.h> #define ONE 3 #define TWO 7 int main(){ int Array_two[ONE][TWO] = {0}; int (*Ptr_array)[TWO] = NULL; //定义
数组
指针
,并指为NULL(空); return 0
指针
数组
与
数组
指针
1、
指针
数组
:是指一个
数组
里面装着
指针
,也即
指针
数组
是一个
数组
定义形式:int *a[10]; 2、
数组
指针
:是指一个指向
数组
的
指针
,它其实还是一个
指针
,只不过是指向
数组
而已; 定义形式:int (*p)[10]; 其中,由于[]的优先级高于*,所以必须添加(*p) 区分方法: 主要看后面的两个字是什么(前面是修饰作用),因此
指针
数组
是
数组
,而
数组
指针
是
指针
。 ...
C语言之
数组
指针
、
指针
数组
文章目录
数组
和
指针
问题
导引作为函数参数的
数组
名
数组
指针
:指向
数组
的
指针
指针
数组
:
数组
元素为
指针
栈区
指针
数组
数组
和
指针
问题
导引
指针
和
数组
并不是相等的。为了说明这个概念,请考虑下面两个声明: int a[10]; int *b; 声明一个
数组
时,编译器根据声明所指定的元素数量为
数组
分配内存空间,然后再创建
数组
名,指向这段空间的起始位置。声明一个
指针
变量的时候,编译器只为
指针
本身分配内存空间,并不为任何整型值分配内存空间,
指针
并未初始化指向任何现有的内存空间。 因此,表达式a是完全合法的,但是表达式b却是
指针
数组
与
数组
指针
的区别
a、
指针
数组
:是指一个
数组
里面装着
指针
,也即
指针
数组
是一个
数组
; 定义形式:int *a[10]; 如图所示: b、
数组
指针
:是指一个指向
数组
的
指针
,它其实还是一个
指针
,只不过是指向
数组
而已; 定义形式:int (*p)[10]; 其中,由于[]的优先级高于*,所以必须添加(*p). 区分方法: 主要看后面的两个字是什么(前面是修饰作用),因此
指针
数组
是
数组
,而
数组
指针
是
指针
。 ...
C语言
70,024
社区成员
243,253
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章