{
c[v]="hello,world";
v[c]="hello,world";
printf("%s",v[c]);
printf("%s",c[v]);
}
1.char **v 中v是什么意思?
2.怎么可以这样用c[v]?c不是一个整型吗?
3.c[v]和v[c]有什么区别,它们指向同一块内存吗?它们之间能否相互赋值
12 个解决方案
#1
这是不知所谓的用法,一塌糊涂。
这样回答有没有分?
这样回答有没有分?
#2
1.指针的指针
2.!!!
3.!!!!
2.!!!
3.!!!!
#3
简单的问题,c[v]和v[c]在编译器看来只不过是地址加偏移,就是
c[v] ====> c+v
v[c] ====> v+c
呵呵,两者一样都指向同一地址。
c[v] ====> c+v
v[c] ====> v+c
呵呵,两者一样都指向同一地址。
#4
同意liuto(B34)的意见,就是这样,但是如果你运行这个程序很可能现运行时错误,因为访问了非法的内存地址c+v,也许在纯dos下面不会错,因为dos对内存没有保护。
这个例子正说明了C语言令人感到恶心的地方,指针没有任何限制,这是他最大的缺点!
这个例子正说明了C语言令人感到恶心的地方,指针没有任何限制,这是他最大的缺点!
#5
不会,只要大小不超过命令行的最大字节数就不会有问题,因为c+v是指向命令行参数块的:-)
#6
另外,这也是C显示其灵活和强大的地方,呵呵呵呵:-) :-)
#7
我没有注意到c和v是main的参数;
不过我还是觉得这种用法很恶心
不过我还是觉得这种用法很恶心
#8
呵呵呵呵,这里这个用法是极端做法,有毛病的人才这么干,:-)是TMD恶心,哈哈哈哈
#9
说个笑话,我的一个朋友曾经这么幽默了一把:
"Hello,world"[1] = 'A';
也挺有意思的吧,呵呵呵呵。
"Hello,world"[1] = 'A';
也挺有意思的吧,呵呵呵呵。
#10
搞笑呀,这样也可以?!
刚刚试了一下,居然真的可以,真不知道C的编译器是怎么做的,对这种情况都没有检查呀,太恶心了:)
刚刚试了一下,居然真的可以,真不知道C的编译器是怎么做的,对这种情况都没有检查呀,太恶心了:)
#11
刚看到。我觉得可以接受呀。starfish太纯洁了吧呵呵。但我绝对同意“清楚的code”!
#12
晕~~~~
#1
这是不知所谓的用法,一塌糊涂。
这样回答有没有分?
这样回答有没有分?
#2
1.指针的指针
2.!!!
3.!!!!
2.!!!
3.!!!!
#3
简单的问题,c[v]和v[c]在编译器看来只不过是地址加偏移,就是
c[v] ====> c+v
v[c] ====> v+c
呵呵,两者一样都指向同一地址。
c[v] ====> c+v
v[c] ====> v+c
呵呵,两者一样都指向同一地址。
#4
同意liuto(B34)的意见,就是这样,但是如果你运行这个程序很可能现运行时错误,因为访问了非法的内存地址c+v,也许在纯dos下面不会错,因为dos对内存没有保护。
这个例子正说明了C语言令人感到恶心的地方,指针没有任何限制,这是他最大的缺点!
这个例子正说明了C语言令人感到恶心的地方,指针没有任何限制,这是他最大的缺点!
#5
不会,只要大小不超过命令行的最大字节数就不会有问题,因为c+v是指向命令行参数块的:-)
#6
另外,这也是C显示其灵活和强大的地方,呵呵呵呵:-) :-)
#7
我没有注意到c和v是main的参数;
不过我还是觉得这种用法很恶心
不过我还是觉得这种用法很恶心
#8
呵呵呵呵,这里这个用法是极端做法,有毛病的人才这么干,:-)是TMD恶心,哈哈哈哈
#9
说个笑话,我的一个朋友曾经这么幽默了一把:
"Hello,world"[1] = 'A';
也挺有意思的吧,呵呵呵呵。
"Hello,world"[1] = 'A';
也挺有意思的吧,呵呵呵呵。
#10
搞笑呀,这样也可以?!
刚刚试了一下,居然真的可以,真不知道C的编译器是怎么做的,对这种情况都没有检查呀,太恶心了:)
刚刚试了一下,居然真的可以,真不知道C的编译器是怎么做的,对这种情况都没有检查呀,太恶心了:)
#11
刚看到。我觉得可以接受呀。starfish太纯洁了吧呵呵。但我绝对同意“清楚的code”!
#12
晕~~~~