1. 程式人生 > >C/C++對字串常量的處理策略

C/C++對字串常量的處理策略

#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同樣的驗證