看来第二节课,为了方便以后自己的记忆,把大致内容写出来,以便自己的回顾。
主要讲了这些,首先上次我已经大概写了变量,变量又可分为全局变量,局部变量。下面我用函数表示一下
int a = 1000;
int main()
{
int b = 100;
printf("%d\n", a);
return 0;
}
在大括号外面就是全局变量,b就是局部变量;
int main()
{
{
int a = 0;
printf("%d\n", a);
}
}
刚刚就是局部变量所打印出,但是当我们把printf换个位置看看呢?
编译报错,显示未申明标识符,这是啥原因呢?其实就是 a这个变量出了括号之后他的生命周期就结束了。全局变量的生命周期是伴随着整个项目的,因此我用一个代码显示一下
int a = 20;
void test()
{
int i = 20;
int c = a + i;
printf("test=%d\n", c);
}
int main()
{
printf("%d\n", a);
test();
return 0;
}
刚刚我创建的int a的变量就是全局变量,从主函数main开始打印出a的值,然后经过test函数,通过变量i的相加,打印出结果40;当然变量还可以通过另一个方式进行表示,我们可以在创造一个源文件例如add.c,在里面放一个全局变量int num;
extern num;
int main()
{
printf("%d\n", num);
return 0;
}
这边是使用了关键字 extern;打印出的结果是
下面来介绍一下常量;常量就是不能改变的值,很好理解;
常量又可分为
int main()
{
const int num = 10;
return 0;
}
这边的 变量num的值就是已经被固定了,不能再被改变了,但是
int main()
{
const int num = 10;
int arr[num] = { 1,2,3,4,5,6 };
printf(%d\n, arr);
return 0;
}
这边num就是错误的,它的本质其实还是一个变量,数组中应该输入常量表达式;
define关键字
#define m 10
int main()
{
int arr[m] = { 1,2,3,4,5,6,7,8,9,10 };
printf("%d\n", m);
return 0;
}
像使用define关键字对数组的时候还是可以使用的。
最后一个表示常量的就是枚举常量;枚举关键字是enum;用一段代码来表示
enum Color
{
//RED,GREEN,BLUE是枚举类型Color的可能取值,同时也是常量,所以叫枚举常量
RED,//0
GREEN,//1
BLUE//2
};
int main()
{
enum Color c = BLUE;
int a = 0;
printf("%d\n", RED);
printf("%d\n", GREEN);
printf("%d\n", BLUE);
//RED = 100;//err
return 0;
}
常量的知识点基本到这边; 我来介绍一下字符串;
int main()
{
char ch1[] = { 'a','b','c' };
char ch2[] = "abc";
printf("%s\n", ch1);
printf("%s\n", ch2);
return 0;
}
其中为啥打印出的结果是这样的呢,其原因就是字符串的末尾有一个\0的元素,当打印到这个元素的时候会自动停止,而字符a,b,c后面在没有遇到\0的时候会一直打印,因此会出现上面的步骤。
在图像中可以发现ch1有3个元素而ch2有四个元素,是因为把\0算作元素算进去了,
而在计算长度长度的时候\0就不算了。
可以发现ch1字符长度居然打印出来是35而ch2字符长度是3,我们在ch1后面加上\0试试
这次变得一样了,因此我们可以发现\0是字符串结束的标志,在计算长度的时候不算做长度。
转义字符就是转变原来的意思的字符,我直接拷贝过来记忆就行,
这其中\f,\v,\?是不怎么使用的。
注释就是为了让复杂的代码加上点提示,让人看懂。\ddd,\xdd一个代表8进制一个代表16进制,
这俩个其实就是很好理解的,我就个自己偷个懒。
选择语句
int main()
{
int coding = 0;
printf("请好好学习,请选择1或0\n");
scanf("%d", &coding);
if (coding == 1)
{
printf("会有好的offer");
}
else if (coding == 0)
{
printf("回家卖地瓜");
}
else
printf("输入错误");
return 0;
}
int main()
{
int coding = 0;
printf("加入比特学习敲代码");
while (coding <= 20000)
{
printf("coding=%d继续当牛马敲代码\n", coding);
coding++;
}
if (coding > 20000)
{
printf("可以出师,去干活当牛马");
}
return 0;
}