免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 10395 | 回复: 22
打印 上一主题 下一主题

[C] char s[] 和char *s问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-04-03 10:31 |只看该作者 |倒序浏览
书上说char s[]和char *s是一样的,我试了下在函数定义中可以这样
func(char s[])和func(char *s)是一样的,但是在代码中定义编译的话就有问题

写成
int arr[2] = {1,2};
int s[];
s=arr;

gcc会报错
test_point.c: In function 'main':
test_point.c:14:6: error: array size missing in 'q'
test_point.c:15:3: error: incompatible types when assigning to type 'int[1]' from type 'int *'
这个是为什么?

论坛徽章:
1
摩羯座
日期:2013-12-19 10:04:07
2 [报告]
发表于 2013-04-03 11:38 |只看该作者
需要提供 数组大小的信息
可以是在定义的时候 写在 [] 里面
可以是是在初始化的时候 根据元素个数 确定
可以是提供一个完整定义.....

论坛徽章:
0
3 [报告]
发表于 2013-04-03 11:46 |只看该作者
建议你看看《征服C指针》这本,我最近在看,挺不错的。应该可以解答你的答案。

论坛徽章:
0
4 [报告]
发表于 2013-04-03 12:07 |只看该作者
回复 1# justlooks


    虽然是一样,但是还是有区别的,C与指针可以看看

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
5 [报告]
发表于 2013-04-03 12:43 |只看该作者
数组和指针是两个类型.

论坛徽章:
0
6 [报告]
发表于 2013-04-03 12:49 |只看该作者
回复 5# linux_c_py_php


    问题是有时候是一回事有时候又不是一回事,所以不明白的很容易糊涂。

论坛徽章:
0
7 [报告]
发表于 2013-04-03 14:23 |只看该作者
数组初始化的时候要指定大小,因为它是静态开辟空间;数组名是常量,不能将常量赋值给常量。数组跟指针还是有很大区别的。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
8 [报告]
发表于 2013-04-03 17:04 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
9 [报告]
发表于 2013-04-03 17:48 |只看该作者
s=arr;
s是常量,不能这样赋值。。。

论坛徽章:
0
10 [报告]
发表于 2013-04-03 18:51 |只看该作者
回复 9# 蜗niu漫步


    s不是常量,而是错误的数组写法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP