超菜问题:为什么位置编号等喜欢用0,1,......n-1,而不用1,2,....,n?

flyhigher402 2003-10-17 09:59:49
比如:
我们一般喜欢用for(j=0;j<n;j++)
而很少用for(j=1;j<n+1;j++) ???
有时好像用后者更方便啊.

高手别见笑.
...全文
62 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
RookieStar 2003-10-18
  • 打赏
  • 举报
回复
其实最符合习惯的还是从1开始的,但习惯以后从0开始也会觉得很自然……
rixwyg 2003-10-18
  • 打赏
  • 举报
回复
高手,见笑了!
要看是什么情况:
如果是数组的下标的话,那就应该从0不始了,
倘若不然系统就将要报错的,
int a[4]={1,2,3,6};
如果是从1开始,a[4];是数组还是第四个元素。
系统就分不清了,如果从0到n-1就不同了但是别可以,
这只是语言的格式而已。
langzi8818 2003-10-18
  • 打赏
  • 举报
回复
FT
stormwolf 2003-10-18
  • 打赏
  • 举报
回复
大家说的好清楚,我就不说了~~

不用0怎么看的出我们是用C的呢~

呵呵,玩笑~
cupidvenus 2003-10-18
  • 打赏
  • 举报
回复
这个习惯是从使用数组遗留下来的。
williamVII 2003-10-18
  • 打赏
  • 举报
回复
C的很多特性是为了写编译器方便,
因为早期的使用者就是写编译器的人.
用0代表位移,编译起来更直接...
以后大家就都这么用了...
(见<C专家编程>)
Liulingbing 2003-10-17
  • 打赏
  • 举报
回复
C语言的下标为0体现了计算机的特性,
比如说计算机现在只能表示8个数,
它只会用0,1,2,3,4,5,6,7
不会认识8。

C程序员一直是被认为较专业的计算机人士,当然要base 0了。
mme 2003-10-17
  • 打赏
  • 举报
回复
这个是由于c语言的数组从0开始而形成的。
只要你习惯了,就会发现它的好处。

而basic就是从1开始的。所以从basic转学c在开始的时候会很不习惯。
psbeond 2003-10-17
  • 打赏
  • 举报
回复
c语言数组下标从0开始(当时就这么规定了,如果当时规定从1开始,就没这个问题了),对数组操作时经常可以看到类似代码:
int arry[5];
for(int i=0; i<5; i++
{
arry[i] = i;
}
如果象你说的从1开始就得这样:
int arry[5];
for(int i=1; i<6; i++)
{
arry[i-1] = i;
}显然不如第一种,久了就成风格了
TianGuangZao 2003-10-17
  • 打赏
  • 举报
回复
0 开头,称为“不对称边界法”。用习惯了有不少好处。

《c 陷阱和缺陷》里有最详细的讨论。
liem 2003-10-17
  • 打赏
  • 举报
回复
因为数组的下标是从0开始的,因此写for循环对数组进行操作从0开始。习惯后,用for就从0开始了。
daizh 2003-10-17
  • 打赏
  • 举报
回复
这个跟你使用的具体情况有关。对于数组一般操作要用for(j=0;j<n;j++)a;主要是数组的下标就是与它的首地址的offset(偏移量),a[0]表示与首地址偏移0,即是数组的第一元素,以下依次类推。
tbmac 2003-10-17
  • 打赏
  • 举报
回复
0-based is developer way
1-based is user way
MPU 2003-10-17
  • 打赏
  • 举报
回复
以上说的是在 数组中....
MPU 2003-10-17
  • 打赏
  • 举报
回复
0 位置浪费了

0 - n 正好确定 n 个元素的边界...

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧