字符串指针一些总结

 梳理字符与字符串:

① %p 为输出地址格式;

如:printf(“%p”,“we”); //表示输出为字符串we的地址

②字符串要点:

   char a[]=“we love code”; //双引号表示字符串,与下面初始化等价

   char  a[]={'w','e',' ','l','o','e',' ','c','o','d','e','\0'};    //必须最后有‘\0’,才能表示字符串,否则为字符数组。

   char a[100]=“we” “love“ “code”;   //输出结果为we love code,将拼接一起,除非用转义可保留引号;若末尾未填写完则全为‘\0’;

③printf(“%p,%c”,“we”,*“Love”); //输出结果分别为地址和 L,原因在于整个引号中的内容作为指向该字符串存储位置的指针,因此*"Love"为所产生地址的值;

 ps:双引号赋值默认在尾添加‘\0’符号。

④指针更改出错问题:

char *p=“I Love code”; //指针初始化;

p[3]=‘i’;                       //编译器可以允许这样做,但容易出错,有些编译器会中断,切勿如此使用。

⑤ 指针字符串与指针指向指针:

 char *p=“I Love code”;

char *f;

  f=p; //实际将指针f指向了“I Love code”的地址,相当于指针p与f均指向此地址。原因是指针指向肯定比赋值快。

⑥char *p[2]={“we are fool”,“you are fool”};    // 有10个指针

  p[0]为we are fool,p[1]为you are fool;*p[0]为‘w’,*p[1]为‘y’;

p[0][0]为‘w’,p[1][0]为‘y’; //由于数组符号与指针之间的关系,类似*f=“you”;f[0]为y;

 

字符函数:

scanf()函数,若为%s,则读入下一个空白字符(空格,制表符或换行符)终止;若指定字符宽度%10s,则字符宽度终止或空白字符终止(或的关系);

strcar()( string concatenation) 函数接受两个字符串参数。它将第二个字符串的一份拷贝添加到第一个字符串的结尾,仅而使第一个字符串成为一个新的组合字符串,第二个字符串幵没有改发。 

 

 

posted @ 2019-04-21 22:10  tangjunjun  阅读(302)  评论(0编辑  收藏  举报
https://rpc.cnblogs.com/metaweblog/tangjunjun