谭浩强c语言实验函数 c语言谭浩强知识点总结

谭浩强版C语言问题(第七章:函数、变量、存储)

.前言:

成都创新互联公司专业为企业提供潘集网站建设、潘集做网站、潘集网站设计、潘集网站制作等企业网站建设、网页设计与制作、潘集企业网站模板建站服务,十载潘集做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

    写在前面,由于我大一学过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.内部函数和外部函数

谭浩强的c语言程序设计题~定义一个函数,求数组从小到大排序

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 }

谭浩强的《C语言设计》里的“求两个数中较大者”的函数是不是有错误?

程序是完全正确的

可能是scanf时,你输入不对(我曾经就这样错过)

你试一试这样输入:

4,6再回车

C语言谭浩强书上说strcpy函数如果str1没有初始化,那么复制后得到的结果不一定是str2中的 一定吗?

根据图所示可知:

s1和s2都进行了初始化,都能表示完整的字符串,所以复制函数strcpy正常运行,结果也为预期结果。

再来说说书上为啥这么说?

如果字符串数组未被初始化,或者字符串指针未被初始化而指向正确的字符串,那么会出现问题。

再来说说函数strcpy原理:

通过指针偏移依次将字符串中的字符复制到目的数组,只有遇到字符串结束符'\0'才结束复制。

如果字符串未初始化,那么字符串结束符是不确定的,有可能在定义的字符串数组长度内,也可能越界继续往下找到第一个结束符。此时复制结果是不确定的或者错误的。


网页标题:谭浩强c语言实验函数 c语言谭浩强知识点总结
本文网址:http://azwzsj.com/article/doisjse.html