您的位置:首页 > 编程语言 > C语言/C++

C语言---关于char型数组和char型指针的问题

2018-01-20 00:57 477 查看
今天在学习数据结构中线性表的过程中,碰到了关于char型数组和指针的问题。说实话这也是困扰了我许久的问题。

问题具体描述



如上代码,定义了一个char型数组a后,将其作为形参传入insert()函数,再返回数组a的地址。
编译出错。错误代码如下:


不兼容的参数类型赋值:char*赋值char[8]。

1.由于返回值不可能为一个数组,所以只能通过修改主函数中a的类型:char* a="abcdefg";编译出现警告。
因为"abcdefg"为const char型,a为字符指针。可以理解为编译器为"abcdefg"在常量区分配了8个字节的大小的空间,然后将其地址返回给a。所以理应来说,a指针指向的内容是const型不允许被修改,所以指针也应该为const char*型。
如若对关键词const有疑问,请参见:const char*和char* const的区别

2.我们将a指针改为常量型指针。相应的,我们将所有与a相关的地方进行修改:



编译运行均无异常,警告也成功消除。

总结:
1.牢记关键字const的不同用法。
2.形参中调用数组的方法是类型+数组名[],实参中直接使用数组名即可。
3.衍生出的新问题,数组名究竟是什么?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C