首先来分析一段代码:
char *a = "hello";
char *b = "hello";
if(a == b)
printf("YES");
else
printf("NO");
"hello"是一个常量字符串,位于静态存储区,它在程序生命期内恒定不变。如果编译器优化的话,会有可能a和b同时指向同一个hello的,这时地址相同;如果编译器没有优化,那么就是两个不同的地址。
首先来分析一段代码:
char *a = "hello";
char *b = "hello";
if(a == b)
printf("YES");
else
printf("NO");
"hello"是一个常量字符串,位于静态存储区,它在程序生命期内恒定不变。如果编译器优化的话,会有可能a和b同时指向同一个hello的,这时地址相同;如果编译器没有优化,那么就是两个不同的地址。