C语言基础03--宏&函数&数组

Catalogue
  1. 1. C语言基础03–宏&函数&数组
    1. 1.0.1.
    2. 1.0.2. typedef
    3. 1.0.3. 函数
    4. 1.0.4. 递归
    5. 1.0.5. 一维数组
    6. 1.0.6. 多维数组

C语言基础03–宏&函数&数组

预先定义一个东西,编译的时候被替换掉,有点常量的感觉

1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h>
#define nNUm = 10; //宏,类似于常量,无参数宏
#define add (a+b); //表达式,无参数宏
#define max(a,b) ((a>b)?(a):(b)) //三元运算符,有参数宏
int main(){
int a=1;
int b=2;
printf("%d",add);//3
printf("%d",max(a,b));//2
printf("%d",a+nNum); //11
return 0
}

typedef

给类型起别名,define宏也能达到类似的效果,但是不能处理指针

1
2
3
4
5
int main(){
typedef int df;
df a=1;
printf("%d",a);
}

函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>

int add(int a, int b); //函数声明,函数位于main函数之下,必须在上面声明一下

int main() {
int a = 11, b = 22;
int c = 0;
c = add(a, b); //33
printf("%d", c);
return 0;
}

int add(int a ,int b) { //函数定义
return a + b; //返回值
}

递归

自己嵌套自己

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
int func1(int n);
int main() {
int n = 5;
func1(n);
return 0;
}
int func1(int n) {
if (n != 0) {
n--;
printf("hello the %d world\n", n);
return func1(n);
}
else {
printf("end");
return 0;
}
}

一维数组

数组的内容必须是同一类型的,通过下标来索引

1
2
3
4
5
6
7
#include<stdio.h>

int main() {
int n[5] = {1,2,3,4,6};
printf("%d",n[4]);
return 0;
}

多维数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h>
int main(){
int n[3][3]={
{1,2,3},
{2,3,4},
{3,4,5}
};
printf("%d",n[2][2]);

for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
printf("%d".n[i][j]);
}
}
return 0;
}