有人可以告诉我为什么这个程序不起作用?
int main()
{
char *num = 'h';
printf("%c", num);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
1>c:\users\\documents\visual studio 2010\projects\sssdsdsds\sssdsdsds\sssdsdsds.cpp(4): error C2440: 'initializing' : cannot convert from 'char' to 'char *'
但是,如果我写这样的代码:
int main()
{
char num = 'h';
printf("%c", num);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它正在工作.
char *num = 'h';
Run Code Online (Sandbox Code Playgroud)
这里,字母'h'是a char,你试图分配给a char*.这两种类型不一样,所以你得到了上面你看到的问题.
这可行:
char *num = "h";
Run Code Online (Sandbox Code Playgroud)
区别在于你在这里使用双引号("),它创建一个char*.
这也有效:
char letter = 'h';
char* ptrToLetter = &letter;
Run Code Online (Sandbox Code Playgroud)
您应该阅读C中的指针,以准确理解这些不同结构的作用.
| 归档时间: |
|
| 查看次数: |
143 次 |
| 最近记录: |