+ -
当前位置:首页 → 问答吧 → C program 一问

C program 一问

时间:2014-03-04

来源:互联网

问一下C program, 传入的array address, 为何改变不到传呢, 请指教, 谢谢

void funcA(char array[]) {
array = "DEF";
}

int main() {
char array[] = "ABC";
funcA(array);
printf("%s", array); //ABC
}

作者: kado781983   发布时间: 2014-03-04

It cannot be explained using a few words. In the following C FAQ:
http://c-faq.com/

Read Sections 4.8, 4.11, 6.3, 6.4, 6.8, 6.9 and 6.10. If you have time, read the whole Section 4 and 6.
If you read Section 4 and 6 thoroughly, you will understand pointers and arrays very well. So well that you can teach back your teacher if you have one.

作者: fitcat07   发布时间: 2014-03-04

Yes, Read and solve, its passed as reference

like char *str are same as char str[], its pointer not array

作者: kado781983   发布时间: 2014-03-04

引用:原帖由 kado781983 於 2014-2-2 08:50 AM 发表
问一下C program, 传入的array address, 为何改变不到传呢, 请指教, 谢谢

void funcA(char array[]) {
array = "DEF";
}

int main() {
char array[] = "ABC";
funcA(array);
printf("%s", array); // ...
看楼主这个问题,在下觉得无奈。
因为,不知pointer为何物。

作者: 金劳和尚   发布时间: 2014-03-04

引用:原帖由 金劳和尚 於 2014-2-8 07:39 PM 发表


看楼主这个问题,在下觉得无奈。
因为,不知pointer为何物。
个个新手都系咁

作者: Susan﹏汪汪   发布时间: 2014-03-04

热门下载

更多