------------------------------------转译----------------------------------------------------------------
int main(int argc,const char * argv[]) {
//所谓的数组,就是一次性定义的多个变量的集合
// int num1;
// int num2;
// int num3;
//如何需要有三个变量,并且要存储三个不同的数据,可以使用数组
// int nums[3];
//如果需要分别使用这三个变量,使用下标[]引用
// nums[0] 表示第一个变量
// nums[1] 表示第二个变量
// nums[2] 表示第三个变量
char *nums[10] = {
"零","一","二","三","四","五","六","七","八","九"
};
// nums[数字几]就得到汉字几
// 1, 提示用户输入
int input, num1, num2;
printf("请输入一个两位数\n");
scanf("%d", &input);
// 计算十位和个位
num1 = input /10;
num2 = input %10;
// 3, 判断转换
if(input == 10) {
printf("十");
}else if(num1 ==1) {
// 翻译第二个数字
printf("十%s", nums[num2]);
// printf("十%s", "二"); // =>十二
}else if(num2 ==0) {
// 第一个字翻译,第二个字加十
printf("%s十", nums[num1]);
}else {
// xy 的情况,首尾翻译,中间放十
printf("%s十%s", nums[num1], nums[num2]);
}
printf("\n");
return 0;
--------------------------------------------while--------------------------------------------------------
// 语法: while (表达式) 循环体语句;
//首先判断表达式,如果为真,执行循环体,然后再判断表达式,如果为假就跳出循环
函数 getchar 的含义是获取缓存中数据的 ascii 码
等待用户输入字符,回车后统计字符个数
while ( getchar() !='\n' ) {
count++;
}
-------------------------------------------$---------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
int main(int argc,const char * argv[]) {
//输入数字,如果按字母q,结束输入,并将所有输入的数字求和
// scanf 函数的返回值
// int input = -1, num = -1, num2 = -1;
// num = scanf("%d,%d", &input, &num2);
//如何获取控制台的数据,如果是数字,就将其转换成
// 数字赋值给input,如果不是是在
// 判断它是否为字母q
// int input;
// char ch;
// int num = scanf("%d", &input);
// if(num == 0) {
// // 没有获取数据
// scanf("%c", &ch);
// if(ch == 'q') {
//
// }
// }
// 1,有一个循环,用来记录用户的输入,同时判断是否继续循环
// 2,在循环中需要准备一个变量,如果输入的是数字,实现累加
// 3, 打印结果
// char ch;
// int sum = 0, input, count;
//
//
// count = scanf("%d", &input); // 从缓存中,尝试获取数字
// if(count == 0) { // 没有获取到数据
// scanf("%c", &ch); // 尝试获取字符 q
// } else { // 获取到了数字
// sum += input;
// }
// // 应该将后面的多于的字符给去掉
// // 序循环直到没有回车为止
// while(getchar() != '\n') ;
//
// while ( ch != 'q' ) {
// count = scanf("%d", &input); // 从缓存中,尝试获取数字
// if(count == 0) { // 没有获取到数据
// scanf("%c", &ch); // 尝试获取字符 q
// } else { // 获取到了数字
// sum += input;
// }
// while(getchar() != '\n') ;
// }
//
//
// printf("求得的和为:%d\n", sum);
// 1, 随意的输入内容,如果按q结束
// char ch;
// printf("Teacher:~ apple$ ");
// scanf("%c", &ch);
//
// while (ch != 'q') {
// printf("Teacher:~ apple$ ");
// scanf("%c", &ch);
//
// }
// 2,添加清除后面输入内容的代码
// char ch;
// printf("Teacher:~ apple$ ");
// while((ch = getchar()) != '\n');
//
// while (ch != 'q') {
// printf("Teacher:~ apple$ ");
// while((ch = getchar()) != '\n');
// }
// 3, 添加获取数字的代码
// int count = scanf("%d", &input); // 123abc
// if(count != 0) {
// // 接收到了数字
// } else {
// // 没有接收到数字
// }
// // 清除后面输入的内容
// 可以输入数据,按下q结束输入
// int count = 0, input, sum = 0;
// char ch, temp;
//
// // 输入数据.验证是否为数字,如果不是数字,获取第一个字符
// count = scanf("%d", &input);
// if(count > 0) { // == 1, != 0
// // 说明数字已经存储到 input 中了
//
// sum += input;
//
// } else {
// // 没有输入数字,需要验证一下是否为 q
//
// scanf("%c", &ch);
// }
// // 忽略后面的输入内容
// while( (temp = getchar()) != '\n') ;
//
// while(ch != 'q') {
//
// // 在该循环中应该完成什么?
// // 循环的目的是为了再次可以输入数字
//
// count = scanf("%d", &input);
// if(count > 0) { // == 1, != 0
// // 说明数字已经存储到 input中了
//
// sum += input;
//
// } else {
// // 没有输入数字,需要验证一下是否为 q
//
// scanf("%c", &ch);
// }
// while( ( temp = getchar() ) != '\n') ;
// }
//
// printf("%d\n", sum);
//
int count = 0, input, sum =0;
char ch, temp;
//输入数据.验证是否为数字,如果不是数字,获取第一个字符
count =scanf("%d", &input);
if(count > 0) {// == 1, != 0
// 说明数字已经存储到 input 中了
sum += input;
}else {
//没有输入数字,需要验证一下是否为 q
scanf("%c", &ch);
}
//忽略后面的输入内容
while( (temp = getchar()) !='\n') ;
while(ch != 'q') {
// 在该循环中应该完成什么?
//循环的目的是为了再次可以输入数字
count =scanf("%d", &input);
if(count > 0) {// == 1, != 0
// 说明数字已经存储到 input 中了
sum += input;
}else {
// 没有输入数字,需要验证一下是否为 q
scanf("%c", &ch);
}
while( ( temp = getchar() ) !='\n') ;
}
printf("%d\n", sum);
// 语句
// while (条件) {
// 语句
// }
return 0;
}
-----------------------------------------
格式化控制字符串
// printf("|%10d|\n", 12);
//保证 %d 输出的数字占10个字符的位置
// img_00.jpg
// img_01.jpg
// ...
// img_10.jpg
printf("|%05d|\n",123);
printf("img_%02d.jpg\n",1);
-----------------------------------------------------------
int i = 0, player, computer;
// 0, 系统生成数字
computer =arc4random_uniform(10);// 生成的随机数是0-9(取得到)
printf("%d\n", computer);
while (i < 3) {
// 1, 提示用户输入
printf("请输入数字\n");
scanf("%d", &player);
// 2, 判断
if(computer == player) {
printf("恭喜答对了\n");
return 0;
}else if(player > computer) {
printf("输入的数字太大了, ");
}else {
printf("输入的数字太小了, ");
}
i++;
}
//如果走到了这里,说明三次都没有答对
printf("您的次数已经使用完了,很可惜...\n");
return 0;
-----------------------------------------逻辑$-----------------------------------------------------------
while 循环专门针对先判断再循环的例子
// do-while循环专门使用在先执行再判断的条件中
/*
int count = 0, input, sum =0;
char ch = '\0', temp;
do {
count =scanf("%d", &input);
if(count > 0) {// == 1, != 0
// 说明数字已经存储到 input 中了
sum += input;
}else {
// 没有输入数字,需要验证一下是否为 q
scanf("%c", &ch);
}
while( ( temp = getchar() ) !='\n') ;
}while(ch != 'q');
printf("%d\n", sum);
return 0;
}
-------------------------------------------打印数字 位数---------------------------------------------------------
int num; // = 1234567;
printf("请输入一个数字\n");
scanf("%d", &num);
int i = 0;
// do {
// num /= 10;
// i++;
//
// } while (num > 0);
while (num > 0) {
num /=10;
i++;
}
printf("%d\n", i);
return 0;
-----------------------------------------------for $-----------------------------------------------------------------------
/*
在使用 while 或 do-while 循环的时候有一个缺陷
凡是涉及到计算次数的时候,会有一些习惯上的隐患
int i = 0;
while( i < 100 ) {
代码逻辑
i++;
}
for 循环
语法:
for(表达式1; 表达式2; 表达式3) {
循环体;
}
首先执行 表达式1
判断 表达式2
真 进入循环体, 再执行表达式3, 再判断表达式2
假 直接跳出循环
*/
// for (; 0;) {
//
// int _ = 0;
//
// }
//
// while(1) {
// int _ = 0;
// }
// 使用 for 循环的一般方法
// for循环专门针对指定次数的循环
/*
// 1
// 循环 100 次
for (int i = 0; i < 100; i++) {
// 循环体
}
// 2
// 循环 100 次
for (int i = 1; i <= 100; i++) {
}
// 3
// 循环 10 次
for (int i = 10; i > 0; i--) {
// printf("%d\n", i);
}
*/
// 从 1 加到 100
// int sum = 0;
// int i = 0;
// while( i <= 100) {
// sum += i;
// i++;
// }
//
// int sum = 0;
// int i = 0;
// for (; i <= 100; i++) {
// sum += i;
// }
// int sum = 0;
// int i;
// for (i = 0; i < 100; i++) {
//
// }
// printf("%d\n", sum);
//在 C89 的规范中,变量的定义要求放在执行代码的前面
// printf("123");
// int num = 10; // C89 会报错
// C99的规范中,说明了,变量可以定义在代码逻辑中间,只要保证使用前定义即可
int sum = 0;
// for (int i = 0; i < 100; i++) {
// sum += i;
// }
for (int i =0; i <= 100; sum += i, i++) ;
printf("%d\n", sum);
return 0;
}
/*
在使用 while 或 do-while 循环的时候有一个缺陷
凡是涉及到计算次数的时候,会有一些习惯上的隐患
int i = 0;
while( i < 100 ) {
代码逻辑
i++;
}
for 循环
语法:
for(表达式1; 表达式2; 表达式3) {
循环体;
}
首先执行 表达式1
判断 表达式2
真 进入循环体, 再执行表达式3, 再判断表达式2
假 直接跳出循环
*/
// for (; 0;) {
//
// int _ = 0;
//
// }
//
// while(1) {
// int _ = 0;
// }
// 使用 for 循环的一般方法
// for循环专门针对指定次数的循环
/*
// 1
// 循环 100 次
for (int i = 0; i < 100; i++) {
// 循环体
}
// 2
// 循环 100 次
for (int i = 1; i <= 100; i++) {
}
// 3
// 循环 10 次
for (int i = 10; i > 0; i--) {
// printf("%d\n", i);
}
*/
// 从 1 加到 100
// int sum = 0;
// int i = 0;
// while( i <= 100) {
// sum += i;
// i++;
// }
//
// int sum = 0;
// int i = 0;
// for (; i <= 100; i++) {
// sum += i;
// }
// int sum = 0;
// int i;
// for (i = 0; i < 100; i++) {
//
// }
// printf("%d\n", sum);
//在 C89 的规范中,变量的定义要求放在执行代码的前面
// printf("123");
// int num = 10; // C89 会报错
// C99的规范中,说明了,变量可以定义在代码逻辑中间,只要保证使用前定义即可
int sum = 0;
// for (int i = 0; i < 100; i++) {
// sum += i;
// }
for (int i =0; i <= 100; sum += i, i++) ;
printf("%d\n", sum);
return 0;
}
/*
在使用 while 或 do-while 循环的时候有一个缺陷
凡是涉及到计算次数的时候,会有一些习惯上的隐患
int i = 0;
while( i < 100 ) {
代码逻辑
i++;
}
for 循环
语法:
for(表达式1; 表达式2; 表达式3) {
循环体;
}
首先执行 表达式1
判断 表达式2
真 进入循环体, 再执行表达式3, 再判断表达式2
假 直接跳出循环
*/
// for (; 0;) {
//
// int _ = 0;
//
// }
//
// while(1) {
// int _ = 0;
// }
// 使用 for 循环的一般方法
// for循环专门针对指定次数的循环
/*
// 1
// 循环 100 次
for (int i = 0; i < 100; i++) {
// 循环体
}
// 2
// 循环 100 次
for (int i = 1; i <= 100; i++) {
}
// 3
// 循环 10 次
for (int i = 10; i > 0; i--) {
// printf("%d\n", i);
}
*/
// 从 1 加到 100
// int sum = 0;
// int i = 0;
// while( i <= 100) {
// sum += i;
// i++;
// }
//
// int sum = 0;
// int i = 0;
// for (; i <= 100; i++) {
// sum += i;
// }
// int sum = 0;
// int i;
// for (i = 0; i < 100; i++) {
//
// }
// printf("%d\n", sum);
//在 C89 的规范中,变量的定义要求放在执行代码的前面
// printf("123");
// int num = 10; // C89 会报错
// C99的规范中,说明了,变量可以定义在代码逻辑中间,只要保证使用前定义即可
int sum = 0;
// for (int i = 0; i < 100; i++) {
// sum += i;
// }
for (int i =0; i <= 100; sum += i, i++) ;
printf("%d\n", sum);
return 0;
}
/*
在使用 while 或 do-while 循环的时候有一个缺陷
凡是涉及到计算次数的时候,会有一些习惯上的隐患
int i = 0;
while( i < 100 ) {
代码逻辑
i++;
}
for 循环
语法:
for(表达式1; 表达式2; 表达式3) {
循环体;
}
首先执行 表达式1
判断 表达式2
真 进入循环体, 再执行表达式3, 再判断表达式2
假 直接跳出循环
*/
// for (; 0;) {
//
// int _ = 0;
//
// }
//
// while(1) {
// int _ = 0;
// }
// 使用 for 循环的一般方法
// for循环专门针对指定次数的循环
/*
// 1
// 循环 100 次
for (int i = 0; i < 100; i++) {
// 循环体
}
// 2
// 循环 100 次
for (int i = 1; i <= 100; i++) {
}
// 3
// 循环 10 次
for (int i = 10; i > 0; i--) {
// printf("%d\n", i);
}
*/
// 从 1 加到 100
// int sum = 0;
// int i = 0;
// while( i <= 100) {
// sum += i;
// i++;
// }
//
// int sum = 0;
// int i = 0;
// for (; i <= 100; i++) {
// sum += i;
// }
// int sum = 0;
// int i;
// for (i = 0; i < 100; i++) {
//
// }
// printf("%d\n", sum);
//在 C89 的规范中,变量的定义要求放在执行代码的前面
// printf("123");
// int num = 10; // C89 会报错
// C99的规范中,说明了,变量可以定义在代码逻辑中间,只要保证使用前定义即可
int sum = 0;
// for (int i = 0; i < 100; i++) {
// sum += i;
// }
for (int i =0; i <= 100; sum += i, i++) ;
printf("%d\n", sum);
return 0;
}
------------------- for 循环的嵌套 ----------------------------------------
乘法口诀表
for(int j =1; j < 10; j++) {
for (int i =1; i <= j; i++) {
printf("%d*%d=%d\t", j, i, j * i);
}
printf("\n");
}
/*
*
**
***
****
*****
*/
//
// for(int i = 1; i < 30; i++) {
// for (int j = 1; j <= i; j++) {
// printf("*");
// }
// printf("\n");
// }
/*
1
22
333
4444
*/
// for(int i = 1; i < 30; i++) {
// for (int j = 1; j <= i; j++) {
// printf("%02d ", i);
// }
// printf("\n");
// }
/*
* 1 3
*** 2 2
***** 3 1
******* 4 0
n 从 1 开始
2n - 1
*/
int totalRow = 10; // total 总数 row行
for (int i =1; i <= totalRow; i++) {
// 打印空格, 打印的空格数 是 总行数 - 行号 4 - 1
for (int j =1; j <= totalRow - i; j++) {
printf(" ");
}
for (int j =1; j <= 2 * i -1; j++) {
printf("*");
}
printf("\n");
}
// for (int i = totalRow; i > 0; i--) {
// // 打印空格, 打印的空格数 是 总行数 - 行号 4 - 1
// for (int j = 1; j <= totalRow - i; j++) {
// printf(" ");
// }
//
// for (int j = 1; j <= 2 * i - 1; j++) {
// printf("*");
// }
// printf("\n");
// }
/*
*
***
*****
*******
*****
***
*
*/
return 0;
}
int main(int argc,const char * argv[]) {
int totalRow = 10;
for (int i =0; i < totalRow; i++) {
//这里应该打印每一行的内容
// 打印的空格
for (int j =0; j < totalRow - 1 - i; j++) {
printf(" ");
}
for (int j =0; j < 2 * i +1; j++) {
printf("*");
}
printf("\n");
}
-----------
for (int i =1; i < totalRow; i++) {
// 第i行就打印i个空格
for (int j =0; j < i; j++) {
printf(" ");
}
for (int j =0; j < 2 * (totalRow - i) -1; j++) {
printf("*");
}
printf("\n");
}
return 0;
函数 function
函数这个概念是由数学概念引入
在其他的编程语言中,都有函数的概念(函数\方法\过程)
什么是函数,代码的打包
我们希望将重复使用的代码,包装成一个名字,然后如果要使用这个代码,就直接调用名字即可
函数是复用的机制的体现
我们根据函数的返回值可以将函数分为
有返回值的函数
无返回值的函数
根据函数的参数使用情况
有参数函数
无参数函数
无参无返回函数
有参无返回函数
有参有返回函数
无参有返回函数
函数定义的语法:
返回值类型 函数名(函数的形式参数列表) {
函数体
}
1)返回值类型
表示函数执行完成以后得到的结果的类型
例如一个函数执行完成以后要有一个数字返回,就写成int,如果是小数,可以写成float和double
如果没有返回值,表示函数执行完成,不需要变量接收返回值,那么就写 void
2)函数名
函数名表示函数的唯一标识(标识符),如要调用函数,就需要使用这个名字
C 语言中函数名不允许重复
OC 中也不支持函数的重载,也没有函数名相同的表示
swift 支持重载
3)函数的形式参数
表示函数调用时需要接收的参数,如果没有参数,可以不填
如果需要接收参数,那么需要定义与参数个数相同的变量
例如,要接收两个数字,一个是int,一个是double,那么就写成
... func(int num, double dNum) { ... }
4)函数体
就是函数的执行代码.函数在执行的时候,会从上往下,从左到右的执行
如果函数没有返回值,那么不需要添加 return语句, 但是如果添加了 return表示函数的结束
如果函数有返回值,注意, return后要跟需要返回的结果
5)一般函数的定义都会放在 main函数的前面,否则需要添加函数的声明
只需要将除了花括号的函数体放到前面即可,这个就是函数的声明
int getMax(int num1,int num2) {
int max;
if(num1 > num2) {
max = num1;
}else {
max = num2;
}
return max;
// return num1 > num2 ? num1 : num2;
}
void printWord(int num) {
switch (num) {
case 0:printf("零");break;
case 1:printf("一");break;
case 2:printf("二");break;
case 3:printf("三");break;
case 4:printf("四");break;
case 5:printf("五");break;
case 6:printf("六");break;
case 7:printf("七");break;
case 8:printf("八");break;
case 9:printf("九");break;
case 10:printf("十");break;
}
}
int main(int argc,const char * argv[]) {
printf("请输入数字!\n");
int input, num1, num2;
scanf("%d", &input);
num1 = input /10;
num2 = input %10;
if(input == 10) {
printWord(10);
}else if(num2 ==0) {
printWord(num1);
printWord(10);
}else if(num1 ==1) {
printWord(10);
printWord(num2);
}else {
printWord(num1);
printWord(10);
printWord(num2);
}
printf("\n");
return 0;
}
// 要输入一个数字,那么函数需要返回 int
// 那么要求用户输入错误,需要重新输入,换句话说要有一个循环
int inputNum() {
// while(1) {
// count = scanf("%d", &num);
//
// if(count == 0) {
// 输入有误
//
// } else {
// 成功
// }
//
// }
int count = 0, tempNum;
while (1) {
// printf("请输入数字: ");
printf("> ");
count =scanf("%d", &tempNum);
// 取消多余的字符
while(getchar() !='\n');
if(count > 0) {
break;
}
// 输入有误
// printf("输入有误, ");
}
return tempNum;
}
// 函数需要用户输入一个数字,然后返回该数字
int inputNum1() {
int temp ;
scanf("%d", &temp);
return temp;
}
// 如果用户输入有误,要求重新输入
int inputNum2() {
int count, temp;
// 先输入,在判断是否正确(do-while)
// 这里使用 while 死循环 + break
while(1) {
printf("$ ");
count =scanf("%d", &temp);
// 去除多余的字符
while(getchar() !='\n');
// 如果输入正确,count == 1
// 否则是为 0 的
if(count > 0) {
break;
}
}
return temp;
}
// 函数内调用一个函数(函数的嵌套调用)
int inputNum3() {
printf("请输入一个数字\n");
returninputNum2();
}
// 允许输入字符串,带有字符串参数的函数应该怎么写?
void printString1(char *str) {
printf(str);
}
int inputNum4(char *msg) {
printf(msg);
// 判断字符串结尾是不是 \n 如果不是 \n 就打印 \n,否则不打印 \n
printf("\n");
returninputNum2();
}
// range 表示范围
int inputNumWithRange(int min,int max) {
int count, temp;
// 先输入,在判断是否正确(do-while)
// 这里使用 while 死循环 + break
while(1) {
printf("$ ");
count =scanf("%d", &temp);
// 去除多余的字符
while(getchar() !='\n');
// 如果输入正确,count == 1
// 否则是为 0 的
if(count > 0 && ( temp >= min && temp < max )) {
break;
}
}
return temp;
}
int inputNum5(char *msg,int min, int max) {
printf(msg);
printf("\n");
int temp = inputNumWithRange(min, max);
return temp;
}
int main(int argc,const char * argv[]) {
int num1 = inputNum5("请输入第一个数字",0, 100);
int num2 = inputNum5("请输入第二个数字",16, 70);
return 0;
}
形参与实参的概念
形参就是形式参数,就是函数定义的时候写的参数
实参就是实际参数,就是函数调用时传递的参数
值传递
函数在调用的时候,会将参数复制一份,然后再赋值给形式参数
一句话:函数里和函数外是两个不同的变量,只是值刚好相等
-----------------------------------递归----$------------递推运算--------- -------------------------------------
递归就是函数直接调用自己或间接调用自己
*/
// 直接递归
// 死递归
//void func() {
//
//
// func();
//
// // 栈溢出的错误
//}
// 间接递归
//void func1();
//void func2();
//
//
//void func1() {
// func2();
//}
//
//void func2() {
// func1();
//}
// 需要使用递归帮助我们完成指定任务,那么就需要递归保证两个条件
// 1,需要有临界跳出条件
//void func() {
// if( 条件 ) return;
//
// func();
//}
// 2, 需要有递归体
数列
1 1 2 3 5 8 13 21 ...
int fib(int n) {
if( n == 0 || n ==1 ) {
return 1;
}
return
fib(n - 1)
+
fib(n - 2);
}
int main(int argc,const char * argv[]) {
// fib(6);
for (int i =0; i < 10; i++) {
printf("%d\n",fib(i));
}
return 0;
}
表示 9 * 8 * 7 * 6 * ... * 1
int func(int n) {
if( n == 1 )return 1;
return n * func(n -1);
}
// 计算指数函数
// 2 ^ 3 2 * 2 * 2
// power(n, m) 计算 n^m
// 2^3 == 2^2 * 2
// 3^4 == 3^3 * 3
// (3, 4) == (3, 3) * 3
// (2, 6) == (2, 5) * 2
// (n, m) == (n, m - 1) * n
// 2^1 = 2^0 * 2
int power(int n,int m) {
if(m == 0) return 1;
return power(n, m -1) * n;
}
int main(int argc,const char * argv[]) {
// for(int i = 1; i <= 12; i++) {
// printf("%d的阶乘是 %d\n", i, func(i));
// }
for (int i =0; i < 10; i++) {
printf("2 的 %d次方是\t%d\n", i,power(2, i));
}
return 0;
}
void func1(int n) {
printf("%d\n", n);
if(n > 0) {
func1(n - 1);
}
// 没有表达式了
}
void func2(int n) {
// 前面没有表达式
if(n > 0) {
func2(n - 1);
}
printf("%d\n", n);
}
int main(int argc,const char * argv[]) {
func1(3);
return 0;
}
头文件使用
"" 表示在当前 main所在的文件夹下找,如果没有再到系统文件夹下去找
<> 就是在系统文件夹下去找
int inputNumWithRange(int min,int max) {
int count, temp;
while(1) {
printf("$ ");
count = scanf("%d", &temp);
while(getchar() != '\n');
if(count > 0 && ( temp >= min && temp < max )) {
break;
}
}
return temp;
}
int inputNum5(char *msg,int min, int max) {
printf(msg);
printf("\n");
int temp = inputNumWithRange(min, max);
return temp;
}
void func2(int n) {
// 前面没有表达式
if(n > 0) {
func2(n - 1);
}
printf("%d\n", n);
}
// func2(3) -> func2(2) -> func2(1) -> func2(0) !-> func2(-1)
int main(int argc, const char * argv[]) {
func2(3);
return 0;
}
1
2
3