目标是利用c语言做一个小项目!!!
今天是重新学习c语言的第n天,由于前段时间在忙比赛项目给耽搁了,不过我会尽量保持让自己每天有3个小时的时间视频学习。
今天写了三个代码,四个知识点
1.代码一:函数版本的两数之和
#include<stdio.h> //头文件
#define POCKETMONEY 10 //define 标识符 常量值 定义常量及常量值
int add(int a,int b)
{
return a+b;
}
int main()
{
int a = 0;
int b = 0;
int sum = 0;
scanf("%d %d",&a,&b);
sum = add(a,b);
printf("%d\n",sum);
return 0;
}
代码比较简单,但俗话说的好从简出发,这个函数是简单写法 如果写得复杂一点或者详细一点的话函数部分应该是
int add(int x,int y)
{
int sum = 0;
sum = x + y;
return sum;
}
还有另一种写法是用#define
来创建一个类似加法函数的宏 大概是这样:
#define add(a,b) a+b
用法也很简单,直接替换掉原先函数部分即可,也是非常好用。add是宏名、(a,b)是宏参、a+b是表达式,与函数相比,宏参是无类型。
2.代码二:求y的值:
#include<stdio.h>
int main()
{
int x = 0;
int y = 0;
scanf("%d",&x);
if (x < 0)
y = 1;
else if (x == 0)
y = 0;
else
y = -1;
printf("%d",y);
return 0;
}
这个就比较简单且包含的知识点并不多,简单使用了scanf输入函数和if判断语句与else if 、else条件语句简单分析在x值不同条件下y值的变化,最后试用printf输出语句打印。
3.最大值判断:
#include<stdio.h>
int get_max(int x,int y)
{
if(x > y)
return x;
else
return y;
}
int main()
{
int a = 0;
int b = 0;
int r = 0;
printf("请输入您要比较的两个值:\n");
scanf("%d %d",&a,&b);
r = get_max(a,b);
printf("最大值为: %d\n",r);
return 0;
}
最大值判断的话也是试用了函数调用,在主函数中输入两个值,使用函数调用的方法将两个值传入函数中用if判断语句进行判断,哪个大就返回那个值,并将返回的值用存入r中,最后打印出来。
1.知识点一:4.27更新
static的三种使用:
第一种局部变量:
static是关键字,那么它在修饰局部变量的时候,局部变量除了作用域,不销毁。
本质上static修饰的局部变量的时候,改变了变量的存储位置。
这是未使用static修饰时:
// static的用法之一局部变量
#include<stdio.h>
void add()
{
int count = 0; //未加static
count++;
printf("%d\n",count);
}
int main()
{
add();
add();
add();
return 0;
}
这是使用static修饰后的代码:
// static的用法之一局部变量
#include<stdio.h>
void add()
{
static int count = 0; //未加static
count++;
printf("%d\n",count);
}
int main()
{
add();
add();
add();
return 0;
}
第一个代码运行的结果是111
第二个代码运行的结果是123
大家可以运行试试看。
其实在这个过程中,用static修饰后,变量的生命周期是变长了的,变长到和程序的生命周期是一样的。
ps:void在函数中表示:不需要任何返回。
第二种全局变量:
这是一种简单的方法:
// static全局变量的试用
#include<stdio.h>
static int sum = 1;
void add()
{
sum++;
printf("%d\n",sum);
}
int main()
{
add();
add();
add();
return 0;
}
还有一种简单的方法是创建两个不同的.c文件
然后再使用时再调用。这就是函数调用了接下来会讲。
1.可以将被static修饰的代码放在文件外试用
2.要注意声明,试用extern关键字,声明外部符号(将此代码放置其他.c文件时)
3.全局变量是具有外部链接属性
4.static修饰全局变量的时候这个全局变量的外部链接属性就变成了内部链接属性
5.其他源文件.c文件就不能在使用这个全局变量了。
作用:1.确保了安全性
2.改变了作用域
第三种修饰函数:
1.与全局变量相似
2.依旧可以试用extern声明
3.函数也是具有外部链接属性
4.试用static修饰时将不具备外部链接属性
5.其他源文件.c文件不能试用
ps:这个目前还是有点不太会。。。如果有大佬看到我的这篇博客的话希望可以指导一下 先谢为敬!!
目前已知就是这三种用法,但是具体还没完全搞清楚,预留着
2.知识点二:
register寄存器:
这个的话也是没有完全搞懂 也是先预留一下
今天的学习任务基本是这些,花费时间大概在三个小时这样,效率感觉有点低,不过好在收获了些东西。
知识点三:
#define 关键字 定义一个符号 例:
#define num 100
2.定义宏:
宏是有参数的 例
#define add(x,y) x + y
add代表宏名,(x , y)代表宏参,x + y 代表宏体
ps:4.27补充了static的三个用法以及define关键字的另一种使用方法
ps:今天也有在健身 练腿和有氧