C语言学习---day1(字符串数组,指针)

   C语言中没有和JAVA中一样的String类型,因此,在C语言中,通过使用字符数组来保存字符串,为了和普通的字符数组区分,我们需要在字符串的尾部添加

一个结束标志:‘\0‘,因此,例如字符串:"bht",那么保存这个字符串的字符数组长度为4. 

   字符串的初始化:

1 char a[4]={b,b,t,\0};
2 
3 char b[4];
4 b[0]=b;
5 b[1]=h.......
6 
7 char c[]="bht";

  如果使用第7行的代码的话,该字符数组的长度不是3,而是4,系统会自动在后面添加‘\0‘这个结束标志!

                

                  关于puts()和gets()两个函数与printf()与scanf()函数的区别

  在xcode中,如果使用puts()和gets()函数的话,编译器会提示这两个函数不安全.为什么呢?下文描述.首先说说gets和puts,这两个分别表示

接收一个字符串和输出一个字符串,可以接收空格和TAB键,而printf和scanf不可以.但是puts和gets不如printf和scanf灵活,后者都可以一次行输出

或者接收多个字符串.

  安全性如下程序:

    char a[]="bht";
    char b[]={i,m};
    
    puts(b);

 

  如果在定义字符串的时候(b),后面忘记敲‘\0‘,那它的输出结果则是  imbht   分析可以如下解释:

在内存中的情况:技术分享

    由于puts和gets都是读取到‘\0才结束,因此,会将后面数组a也会打印到控制台中.  这里有内存分配先后的问题

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。