我最近才开始学习 C。我正在研究数组和指针的概念,当我在理解它时遇到了一个绊脚石。
考虑这段代码 -
#include<stdio.h>
int main()
{
char string[]="Hello";
char *ptr;
ptr=string;
puts(*ptr);
return(0);
}
它可以编译,但在执行时遇到分段错误。
我得到的警告是:
在“puts”的参数 1 中输入错误;发现 'char' 预期 'pointer to char'
现在 *ptr 确实返回一个字符“H”,我最初的印象是它只接受一个字符作为输入。
后来,我开始明白 puts() 需要一个指向字符数组的指针作为输入,但我的问题是当我传递这样的东西时 - puts("H") 与 puts(* ptr),假设 *ptr 确实包含字符“H”。