搜索
查看: 1787|回复: 17
打印 上一主题 下一主题

求大神啊啊!这不合常理啊!

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-14 09:49:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
void f(int*t ,int y)
{t[5]=99;/*这里的t[5]=99;怎么不是*t[5]=99;呢!*t[5]才是这个这个字符地址的值!
t[5]应该是它的地址啊!地址=99应该报错误啊!它占用了不属于他的空间!
我刚才用*t[5]=99;代替t[5]=99;怎么还报错误了啊啊!不合常理啊啊!*/
}
int main()
{int a[100]={1,2,3,4,5,6,7,8,9};
f(a,5);
printf("%d",a[5]);
       
        system("pause");
        return 0;
}

最佳答案

查看完整内容

t[5]就是值,是你搞错了 array是 *(array + i)的语法糖而已
沙发
发表于 2013-8-14 09:49:12 | 只看该作者
t[5]就是值,是你搞错了

array[i]是 *(array + i)的语法糖而已
板凳
 楼主| 发表于 2013-8-14 09:50:50 | 只看该作者
求解。。。
地板
 楼主| 发表于 2013-8-14 10:59:32 | 只看该作者
rosynirvana 发表于 2013-8-14 09:49
t[5]就是值,是你搞错了

array是 *(array + i)的语法糖而已


array是 *(array + i)的语法糖而已
但是我用*(array + i)也不应该报错误啊!
5#
发表于 2013-8-14 11:07:29 | 只看该作者
你写的是 *array[i]吧

array[i]等同于 *array[i], 刚才少打了几个字
6#
 楼主| 发表于 2013-8-14 11:59:24 | 只看该作者
rosynirvana 发表于 2013-8-14 11:07
你写的是 *array吧

array等同于 *array, 刚才少打了几个字

问题以想明白!谢谢
7#
发表于 2013-8-14 12:03:37 | 只看该作者
好像论坛会把代码转义掉……orz

后来人不要看上面的解释了,被论坛搞乱了
8#
 楼主| 发表于 2013-8-15 11:33:20 | 只看该作者
rosynirvana 发表于 2013-8-14 12:03
好像论坛会把代码转义掉……orz

后来人不要看上面的解释了,被论坛搞乱了

发帖子的时候老有问题
9#
发表于 2013-10-8 10:37:20 | 只看该作者
你可以理解成“C语言中根本没有数组这种东西”,有的只是连续分配空间的一种语法糖。
数组在绝大多数情况下都会转换成一个指针,例如
int a[] = {1,2,3};
a[1];
复制代码
a[1]其实不是读取数组元素,编译器总是把它处理成 *(a + sizeof(int) * 1),所以你甚至可以写 1[a]

函数传递参数时,如果参数是数组,则会转换成指向数组首地址的指针
也就是你写
void fun(int a[]);
复制代码
编译器会自动转化为
void fun(int* a);
复制代码
如果你写
void fun(int a[10]);
复制代码
也会被转化为
void fun(int* a);
复制代码
数组的长度是无法用一个参数就传递进去的,因为数组这时候被转换成了指针

点评

嗯!  发表于 2013-10-8 11:55
10#
发表于 2013-10-8 12:55:13 | 只看该作者
4399APPLE 发表于 2013-10-8 10:37
你可以理解成“C语言中根本没有数组这种东西”,有的只是连续分配空间的一种语法糖。
数组在绝大多数情况下 ...

把我在另一个帖子里写的东西复制过来,有意思?
11#
发表于 2013-10-8 16:45:53 | 只看该作者
当然有意思
把我在另一个帖子里写的东西复制过来,有意思?
12#
发表于 2013-10-8 16:52:08 | 只看该作者
这不是灌水!!!!!!!!!
13#
 楼主| 发表于 2013-10-8 17:30:11 | 只看该作者
4399APPLE 发表于 2013-10-8 16:52
这不是灌水!!!!!!!!!

这叫浇地么!》》....
14#
发表于 2013-10-9 10:52:07 | 只看该作者
当然叫下雨
15#
发表于 2013-10-9 10:52:30 | 只看该作者
当然叫下雨
这叫浇地么!》》....
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表