为了账号安全,请及时绑定邮箱和手机立即绑定

C中char数组与char指针的区别是什么?

C中char数组与char指针的区别是什么?

C
倚天杖 2019-06-27 16:40:19
C中char数组与char指针的区别是什么?我试图理解C中的指针,但目前我对以下内容感到困惑:char *p = "hello"这是指向字符数组的char指针,从h.char p[] = "hello"这是一个存储你好.当我把这两个变量都传递到这个函数中时,有什么区别呢?void printSomething(char *p){     printf("p: %s",p);}
查看完整描述

3 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

char*char[] 是不同的类型,但并非在所有情况下都是显而易见的。这是因为数组衰变成指针,意思是如果类型的表达式char[]提供类型之一的char*编译器会自动将数组转换为指向其第一个元素的指针。

示例函数printSomething希望得到一个指针,因此,如果您试图向它传递一个数组,如下所示:

char s[10] = "hello";printSomething(s);

编译器假装您这样写:

char s[10] = "hello";printSomething(&s[0]);


查看完整回答
反对 回复 2019-06-27
  • 3 回答
  • 0 关注
  • 1914 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信