码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-04-22 23:36:05      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:

   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也会打印到控制台中.  这里有内存分配先后的问题

 

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

标签:

原文地址:http://www.cnblogs.com/bhtfly/p/4448874.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!