第六课
- 概要:本周开始学习数组,函数及其相关概念,包括数组的定义,数组赋值,函数的定义,函数原型声明,void无值类型
- 细节回顾:
- 数组必须要声明类型,表示数组中元素类型,同时也需要声明长度,长度声明完成后,不可变更(C99标准中可以使用变量表示长度)
- C语言执行时会顺序执行,如果没有提前声明函数,执行过程中会猜想假定声明,可能造成冲突导致编译失败,此时可以使用函数原型声明来解决,也可以把函数定义的代码块,写到引用函数之前来解决。
- 原型声明是指:包含函数定义的类型,函数定义的参数类型,分号,如
void func(int a, double, int c);
,注意,可以不用定义具体参数,只需要参数类型 - 函数有返回值时,声明的返回类型要保持一致。
- 二维数组,声明方式比如:
int a[][3]; int arr[3][3];
,一定要注意声明列的长度 - 函数f(),可以接受参数,f(void)才明确表示不接受参数
第七课
- 概要:本周内容学习数组相关计算,主要包括了,长度计算,搜索,排序
- 细节:
- 长度计算:函数sizeof();比如int a[]; 长度len=sizeof(a)/sizeof(a[0]),就是由于数组元素有一致性,总大小/单个元素大小==长度*
- 二维数组可以有连续赋值的形式,比如int a[][2]={1,2,3,4};等效于int a[][2]={{1,2},{3,4}};
- 数组赋值时可以指定位置,其他没有指定下标位置的用0填充替代,比如int a[3] = {[1]=1,2}等效于int a[3]={0,1,2};
- 结构体struct{},可以自定义元素数据类型,让不同的数据类型归属同一个结构
第8课
- 概要:本周主要学习C语言指针与字符串相关基础知识
- 细节:
- 指针,表示数据的内存地址,使用 char *p;这种方式定义
- 数组变量是特殊的指针,数组第一个元素的内存位置与数组指针的内存位置一致
- 指针内存位置可以使用 %p占位符打印出来
- ‘&’+变量名可以表示已存在变量的指针地址,而*是间接运算符,是指针的引用,表示指针指向的对象或者函数
- 字符串在内存中的表达形式是字符数组,其中最后一个元素为’\0’;
- 字符串操作函数,strlen,strcmp,strncpy,strncat等等,需要引入头文件
include "string.h"
(tips: 双引号标识先搜索当前目录,再搜索标准库目录,而<>号表示直接搜索标准库目录) - 字符串定义可以使用指针形式 char *s=“abc”;数组形式 char s[]=“abc”;