社区
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,代码里区别是怎么产生的呢?
谢谢大家了
...全文
363
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++
指针
数组
与
数组
指针
详解
指针
数组
与
数组
指针
详解1.什么是
指针
数组
和
数组
指针
?
指针
数组
:
指针
数组
可以说成是”
指针
的
数组
”,首先这个变量是一个
数组
,其次,”
指针
”修饰这个
数组
,意思是说这个
数组
的所有元素都是
指针
类型,在32位系统中,
指针
占四个字节。
数组
指针
:
数组
指针
可以说成是”
数组
的
指针
”,首先这个变量是一个
指针
,其次,”
数组
”修饰这个
指针
,意思是说这个
指针
存放着一个
数组
的首地址,或者说这个
指针
指向一个
数组
的首地址。 根
数组
指针
:指向
数组
的
指针
文章目录一、
数组
指针
定义二、
数组
指针
赋值三、
数组
指针
访问四、定义
数组
指针
时的注意要点 一、
数组
指针
定义
数组
指针
定义: #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
C语言之
数组
指针
、
指针
数组
文章目录
数组
和
指针
问题
导引作为函数参数的
数组
名
数组
指针
:指向
数组
的
指针
指针
数组
:
数组
元素为
指针
栈区
指针
数组
数组
和
指针
问题
导引
指针
和
数组
并不是相等的。为了说明这个概念,请考虑下面两个声明: int a[10]; int *b; 声明一个
数组
时,编译器根据声明所指定的元素数量为
数组
分配内存空间,然后再创建
数组
名,指向这段空间的起始位置。声明一个
指针
变量的时候,编译器只为
指针
本身分配内存空间,并不为任何整型值分配内存空间,
指针
并未初始化指向任何现有的内存空间。 因此,表达式a是完全合法的,但是表达式b却是
一篇文章让你搞懂字符
指针
数组
指针
指针
数组
数组
传参和
指针
传参 函数
指针
数组
指针
类比:整型
指针
—指向整型变量的
指针
,存放整型变量的地址的
指针
变量字符
指针
—指向字符变量的
指针
,存放字符变量的地址的
指针
变量
数组
指针
—指向
数组
的
指针
,存放的是
数组
的地址的
指针
变量我们已经熟悉:整形
指针
: int * pint;能够指向整形数据的
指针
浮点型
指针
: float * pf;能够指向浮点型数据的
指针
那
数组
指针
应该是:能够指向
数组
的
指针
下面代码哪个是
数组
指针
?//p1, p2分别是什么?解释。
C语言
指针
:
指针
数组
、
数组
指针
、函数
指针
及函数
指针
数组
比如int* pi;存放的是整形变量的地址,能够指向整形数据的
指针
。比如float* pf;存放浮点型变量的地址,能够指向浮点型数据的
指针
。那么
数组
指针
变量:存放的应该是
数组
的地址,能够指向
数组
的
指针
变量。那要怎么表示
数组
指针
变量呢?int* p1[5];//
指针
数组
上面的代码中,p1是一个
指针
数组
,
数组
中有5个元素,每个元素是int*类型的。p2就是一个
数组
指针
变量,那要怎么记忆理解呢?首先p2先和*结合,说明p2是一个
指针
变量变量,然后指向的是一个元素个数为5,元素类型为整型的
数组
。
C语言
70,024
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章