字符类型的指针

2016-12-04  本文已影响0人  EdisonDong

例子

#include <stdio.h>

int test_char(){
  char name[] = "Tom";
  printf("%s\n",name);
  printf("%s\n",*name);
}

int test_char_pointer(){
  char *name = "Tom";
  printf("%d",name);
  printf("%d",*name);
  printf("%d",&name);
  printf("%s",name);
  printf("%d",*name);
}

void split_line(){
  int count = 20;
  for(int i = 0;i < count;i++){
    printf("%c",'-');
  }
  printf("\n");
}

int main(){
  test_char();
  split_line();
  test_char_pointer();  
}

在预测结果前,先弄清几个概念

char *name = "Jack";//name指向字符串Jack的第一个字符地址
char *name;//定义一个字符类型的指针
char other_name[20] = {'J','a','c','k'};
name = &other_name;//name指针指向变量other_name的地址
char *p;
char name[] = "Jack";
p = &name;
char *p = "Jack";
char p_value = *p;

运行结果

如果理解以上的概念,不难计算出以下答案:

#include <stdio.h>

int test_char(){
  char name[] = "Tom";
  printf("%s\n",name);//Tom
  printf("%s\n",*name);//出错 name不是一个指针 不能使用取值符号*
}

int test_char_pointer(){
  char *name = "Tom";
  printf("%d",name);//12233
  printf("%d",*name);//84
  printf("%d",&name);//238677
  printf("%s",name);//Tom
  printf("%d",*name);//出错
}

void split_line(){
  int count = 20;
  for(int i = 0;i < count;i++){
    printf("%c",'-');
  }
  printf("\n");
}

int main(){
  test_char();
  split_line();
  test_char_pointer();  
}
上一篇 下一篇

猜你喜欢

热点阅读