C/C++對字串常量的處理策略
阿新 • • 發佈:2018-12-18
#include<stdio.h> char *a="Hello"; extern void func(); int main() { char *b="Hello"; char *c="Hello1"; if(a==b) printf("a==b \n"); //兩個指標指向同一塊記憶體 else printf("a!=b \n"); if(a==c) printf("a==c \n"); else printf("a!=c \n"); func(); return 0; }
#include <stdio.h>
extern char *a;
char *e="Hello";
void func()
{
char *f="Hello";
if(f==a)
printf("a==f \n");
else
printf("a!=f \n ");
if(f==e)
printf("f==e \n");
else
printf("f!=e \n");
}
最終結果:
a==b a!=c //前兩個說明,同文件,同值的常量指向同一塊記憶體 a!=f //1,3說明,同值不同檔案,記憶體塊不同
f==e//與1,2同樣的驗證