【发布时间】:2017-02-02 13:50:05
【问题描述】:
这是一个查找字符串长度的示例程序。
{
char *ptr="Autobiography Of Yogi";
char *a = ptr , *b = &ptr[20];
printf(" length is %d ", (b-a)+1 ); // subtracting pointers to find string length
}
我的问题是,这个程序适用于小端和大端机器吗?
【问题讨论】:
-
字节序对您的代码没有影响。但是由于硬编码
20,您的代码还是很差。 -
注意:指针减法导致
ptrdiff_t类型可能与int不同。便携式C99代码使用printf("%td\n", (b-a)+1 ); -
您的方法的主要问题是,为了使用它,您必须已经知道字符串长度......它是 21,而不是 20。
标签: c cpu-architecture