.前言:
写在前面,由于我大一学过java多以对于本书的前几张没有什么记录。那是因为他和java的数据类型、循环结构、数组、函数之类的这一些都差不太多。前面稍微重要的就是函数了和java稍有不一致,个人觉得没有必要再写了,所以我从函数开始写起。学习C语言就要学习他的精华。譬如:指针、自定义数据类型、文件。
汉诺塔问题
![](https://img.haomeiwen.com/i13888234/045334840f1653cf.png)
/*思路:
有三个盘子,三个柱子,
若盘子数量大于一:将两个盘子放在B柱子上,再将最后一个盘子放在C柱子上,最后将B柱子上的盘子放在C柱子上即可!
若盘子数量小于一: 直接将盘子放在C柱子上即可*/
int main(){
int num;
void hannuota(int num, char one, char two, char three); //定义汉诺塔函数
printf(“请输入盘子的个数:”);
scanf(“%d”,&num);
prinf("移动的顺序是:");
hannuota(m,‘A’,‘B’,‘C’);
}
void hannuota(int num, char one, char two, char three){
void move(char x,char y); //定义移动的函数
if(num==1){
move(one,three);
}else{
hannuota(num-1,one,three,two);
move(one,three);
hannuota(num-1,two,one,three );
}
void move(char x,char y){
printf("%c------->%c",x,y);
}
2.字符串问题 : C中没有字符串类型,只有字符数组
例如: char asd[] = {"hellow "}
使用scanf输入的时候不用取地址赋值,直接使用字符数组名字即可,因为他们在内存中的地址是连续的
字符串的几个函数“#include <string.h>”.puts gets、strlen、strcmp、strcat
3.数组在实参和形参中的传递问题
数组元素的传递 a[45]、将数组名放在形参是把该数组的首地址传递,操作形参就是操作实参
4.二维数组中的列必须有大小,相对的二维数组中的一维的大小可以没有,系统会自动分配。(学习完指针后会有更明确的理解)
5.变量问题
![](https://img.haomeiwen.com/i13888234/ebcdee74b5370ebc.png)
![](https://img.haomeiwen.com/i13888234/86e35685b85a0828.png)
![](https://img.haomeiwen.com/i13888234/db37d95a94cf6bb9.png)
![](https://img.haomeiwen.com/i13888234/e7421f06c90663d0.png)
P232
![](https://img.haomeiwen.com/i13888234/099880cbd4d798d8.png)
6.内部函数和外部函数
![](https://img.haomeiwen.com/i13888234/e3eda2ade8091d40.png)
![](https://img.haomeiwen.com/i13888234/f3e20e029fad553d.png)
网友评论