C语言学习内容总结2017/10/24

来源:互联网 发布:阿里云跟阿里巴巴关系 编辑:程序博客网 时间:2024/06/05 05:13

1.char是一个特殊的类型。

2.'a'和"a"是两个不同的概念。'a'是字符a所对的ASCII码值。"a"为字符串,它占两个字节存的是a和\0

对于'abcd'会转为//616263、"abcd"//仍为一个字符串。

3.sizeof()计算字符串长度时会算上'\0'。strlen()计算字符串长度时不算'\0'。

4.ar[3]等价于*(ar+3);

5.指针和指针相减的前提条件是指针的类型相同。指针的相减是计算两个指针之间的元素个数,这种计算是算头不算尾。指针之间只能相减不能相加。

6.0X0000 0000~0Xffff ffff之间的内存空间是4G。

7.全局变量又可被分为字符串常量区。所以下面一段代码:

#include<stdio.h>

viod main()

{

char ch[10];

char ar[]={"yhping"};

char *str="yhping";//注意:这个字符串常量定义在全局变量的字符串常量区。只能读,不能写。

int x=sizeof(str);//int x的值为4。

int y=sizeof("yhping");//int y的值为7。

char ch="1 2 3 4 5 6 7 8"[2]表示去此字符串中下标为2的元素,即3。

//int  x1={ 12,23,34,45,56,67}[3];//编译是不能通过的,这种写法只是对字符串适用,并不适用于其他数组。

ch1=getchar();//输入时输入字符会回显,并且以enter键作为结束。

ch2=getch();//输入时不会回显,并且它的输入不以enter作为结束。

gets(ch);//当所输入字符串超出数组所定义的空间大小时系统会报错。它的输入以enter作为结束。

scanf("%s",ch);//不检查空间大小,以空格键作为输入的结束。

}

8.任何一个字符串数组里面都会有一个'\0'。

9.下面一段代码:

void my_strcpy(char *di,char *si)

{

while(*si!=‘\0’)

{

*di=*si;

++di;

++si;

}

*di=‘\0’;

}

另外一种写法:

while(*si!=‘\0’)

{

*di++=*si++;

}