| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4050 人关注过本帖
标题:指针,这里不太懂,有哪位大佬说下吗?
只看楼主 加入收藏
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10527
专家分:42899
注 册:2014-5-20
收藏
得分:0 
以下是引用lin5161678在2020-7-3 14:59:54的发言:


写a 和 写&a[0]
都不存在交流障碍的问题

有些东西不能从主观方面去想的
2020-07-03 15:03
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10527
专家分:42899
注 册:2014-5-20
收藏
得分:0 
对于C语言来说 int a[5] 的a与&a[0]是具有不同意义的
2020-07-03 15:06
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10527
专家分:42899
注 册:2014-5-20
收藏
得分:0 
以下是引用lin5161678在2020-7-3 14:59:54的发言:
读不懂的人需要提高
而不是需要迁就

同意这两句说法
迁就不是好事,入乡随俗,方言也要学。
2020-07-03 15:12
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10527
专家分:42899
注 册:2014-5-20
收藏
得分:0 
其实,提出“严谨”一说,只是说说楼主为何出现“这里不太懂”的问题
2020-07-03 15:15
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
以下是引用吹水佬在2020-7-3 15:02:30的发言:


void f(int a[], int len)
void f(int *a, int len)
这两句的表达意思是一样吗?
int a[]
int *a
这两句的表达意思是也一样吗?

我特意强调了
并且和类型转换没有关系
是函数原型作用域的特殊要求


https://zh.
任何数组类型的参数都被调整到对应的指针类型,若数组声明器的方括号内有限定符,则它具有限定 (C99 起)。
int f(int[]); // 声明 int f(int*)
int g(const int[10]); // 声明 int g(const int*)
int h(int[const volatile]); // 声明 int h(int * const volatile)
int x(int[*]); // 声明 int x(int*)

https://zh.
2020-07-03 15:16
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:0 
int g(const int[10]);
int g(const int*)
貌似这两个不能完全等同吧?
2020-07-03 15:26
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
以下是引用八画小子在2020-7-3 15:26:32的发言:

int g(const int[10]);
int g(const int*)
貌似这两个不能完全等同吧?

完全一样

https://zh.
2020-07-03 15:36
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10527
专家分:42899
注 册:2014-5-20
收藏
得分:0 
回复 15楼 lin5161678
理解
可能是看问题的角度不同
一个强调的是编译行为
一个是强调语言表达方式
2020-07-03 15:40
kr0
Rank: 1
等 级:新手上路
帖 子:8
专家分:5
注 册:2020-6-9
收藏
得分:0 
指针可以指向数组名的首地址(即,a),f(a,5)意味着把数组名a的地址传给 指针 (指针就是地址)。
2020-07-03 19:33
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10527
专家分:42899
注 册:2014-5-20
收藏
得分:0 
以下是引用kr0在2020-7-3 19:33:27的发言:

指针可以指向数组名的首地址(即,a),f(a,5)意味着把数组名a的地址传给 指针 (指针就是地址)。

从语言表达的角度看
数组名与数组的首地址不是一回事吧
不能说数组名(a)就是数组的首地址
2020-07-03 20:32
快速回复:指针,这里不太懂,有哪位大佬说下吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014752 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved