昨天在学习C语言进阶的时候发现,这门课是将C语言的知识讲的更详细了,比如一些关键字就会讲的数量越多,之前学的那些概念再往深里了挖,昨天晚上是在洛谷开始练了试题,发现:算法和数据结构是完成题目的两大核心,所以我又有学习数据结构和算法的念想了,我感觉…我这“吃”的有点多,不知道能不能消化的了嗷~
学习途径(视频 )
大纲(P1-P15)
笔记
-
数据类型
-
typedef
3. void
只要是指针,不管类型是什么,字节都是4个
- sizeof
int 和 unsigned int 运算结果为 unsigned int
5. 变量修改方式(不太会)
6. 内存分配
1)程序运行前
2)程序运行后
7. 栈区(完全懵的状态)
8. 堆区(不会)
1)结果为null的情况
2)改进:结果为hello world 的情况
9. static 和extern 的区别
10. const
11. 字符串常量
C语言基础(查漏补缺)
C语言程序设计(第五版)谭浩强 清华大学出版社
第六章(数组)
- a[10] 表示包含十个元素;其中包含的元素名称是a[0]~a[9]
- a[3][4]表示3行4列
- scanf("%s",& str); 错误的,str本身就是一个地址,str[]是内容。
- 字符串处理函数:
作用 | 语法 |
---|---|
输出 | puts(字符数组地址) |
输入 | get(字符数组地址) |
连接字符串 | strcat(字符数组地址1,字符数组地址2) |
复制字符串 | strcpy(复制字符数组地址1,被复制字符数组地址2/字符串) |
字符串ASCII码值比较 | strcmp(字符数组地址1,字符数组地址2) 1>2正数;1<2负数;1=2零; |
计算字符长度 | strlen(字符数组) |
转换为小写/大写 | strlwr(字符串)/strupr(字符串) |
第七章(模块化程序)
嵌套函数:
int max4(int a,int b,int c,int d)
{
int max2(int a,int b);//声明函数,不要被误导了
int m;
m=max2(a,b);//这里的a,b,c,d都是max4中的变量
m=max2(m,c);//这里的a,b,c,d,m都是要带入max2中的
m=max2(m,d);
//以上三个函数可以直接用m=max2(max2(max2(a,b),c),d)代替
return(m);
}
int max2(int a,int b);
{
if(a>=b) return a;
else return b;
}
int fac(int n)
{
int f;
if(n<0)ju
printf("n<0,data error!");
if(n==0||n==1)
f=1;
else f=fac(int n-1)*n;//嵌套函数,自己套自己
return f;
关于数组的函数的要点:
int main()
{
float average(float array[10]);//函数声明
float score[10],aver;
......
aver=average(score);//调用函数,average(数组地址)
return 0;
}
float average(float array[10])//定义函数,average(类型 数组)
{
.......
}
//float average(float array[],int n)
//不确认数组元素个数
多维数组:
array[][1];array[1][2]; 省略要求:只能省略第一维的大小。