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也会打印到控制台中. 这里有内存分配先后的问题
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。