如何在 C 语言中使用指针定义字符串?



你认为发生了什么 名为 Name 的指针如何获取字符串的大小? 请逐步澄清

main()
{ char *name;
scanf("%s",name);
printf("hi %s ! n",name);

在 C 中,字符串的大小不会存储在任何地方(除非你这样做(。

"字符串",实际上是字符数组,以值 0 (''( 结尾。

这是一个惯例。

printf这样的库函数期望字符数组在某个时候有一个字节 0,以标记字符串的末尾。

代码

char *name = "hekal";

将在内存中转换为

-------------
|h|e|k|a|l|0|
-------------

最后一个0是字节 0(整数 0(,而不是 ASCII 字符0

当然,您需要为name腾出一些空间!

尝试

char name [100];

而不是char *name;;

最新更新