我使用sizeof函数来计算字符串的大小。 应该打印2.但为什么4? 这是代码。
#include <stdio.h>
#include <string.h>
void main()
{
char *b = "ab";
printf(" %d ",sizeof(b));
//printf("%s ",b);
}
答案 0 :(得分:1)
因为在您的平台上指针是4个字节。如果您愿意,可以使用32位。
注意:使用void main()
作为main()
的签名表示您正在从旧书中学习c,请小心!
答案 1 :(得分:1)
$string = '[embed]https://www.youtube.com/watch?v=L3HQMbQAWRc[/embed]';
$string = str_replace(['[embed]', '[/embed]'], '', $string);
是一个关键字,而不是一个函数,它以字节为单位告诉您变量的大小。变量sizeof
是一个指针,其大小(在您的系统上)是4个字节。如果您想要字符串的长度,请使用b
函数。
答案 2 :(得分:1)
char *b = "ab";
在您的情况下,b
是指向文件中只读字符串文字的指针。在您的情况下,指针在系统中的大小为4.
如果您想了解长度,可以使用strlen()
这样做。
Sizeof以字节为单位返回传递给它的变量的大小。
有趣的事实:你甚至可以打印指针!
printf("%p\n",b);
输出的示例是:
0x8048555