重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
.前言:
成都创新互联公司专业为企业提供潘集网站建设、潘集做网站、潘集网站设计、潘集网站制作等企业网站建设、网页设计与制作、潘集企业网站模板建站服务,十载潘集做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
写在前面,由于我大一学过java多以对于本书的前几张没有什么记录。那是因为他和java的数据类型、循环结构、 数组、函数 之类的这一些都差不太多。前面稍微重要的就是函数了和java稍有不一致,个人觉得没有必要再写了,所以我从函数开始写起。学习C语言就要学习他的精华。譬如: 指针、自定义数据类型、文件。
汉诺塔问题
2.字符串问题 : C中没有字符串类型,只有字符数组
例如: char asd[] = {"hellow "}
使用scanf输入的时候不用取地址赋值,直接使用字符数组名字即可,因为他们在内存中的地址是连续的
字符串的几个函数“#include string.h”.puts gets、strlen、strcmp、strcat
3.数组在实参和形参中的传递问题
数组元素的传递 a[45]、将数组名放在形参是把该数组的首地址传递,操作形参就是操作实参
4.二维数组中的列必须有大小,相对的二维数组中的一维的大小可以没有,系统会自动分配。(学习完指针后会有更明确的理解)
5.变量问题
P232
6.内部函数和外部函数
11 void sort(int *array, int num)
12 {
13 int i, j;
14
15 int tmp;
16
17 for( i=0; inum; i++)
18 for( j=i+1; jnum; j++)
19 if( array[i] array[j]){
20 tmp = array[j];
21 array[j] = array[i];
22 array[i] = tmp;
23 }
24
25 }
程序是完全正确的
可能是scanf时,你输入不对(我曾经就这样错过)
你试一试这样输入:
4,6再回车
根据图所示可知:
s1和s2都进行了初始化,都能表示完整的字符串,所以复制函数strcpy正常运行,结果也为预期结果。
再来说说书上为啥这么说?
如果字符串数组未被初始化,或者字符串指针未被初始化而指向正确的字符串,那么会出现问题。
再来说说函数strcpy原理:
通过指针偏移依次将字符串中的字符复制到目的数组,只有遇到字符串结束符'\0'才结束复制。
如果字符串未初始化,那么字符串结束符是不确定的,有可能在定义的字符串数组长度内,也可能越界继续往下找到第一个结束符。此时复制结果是不确定的或者错误的。