前面记录了变量,这里归纳汇总一下变量命名原则:
一、变量
1、只能由字母(包括大写和小写)、数字和下划线(_)组成
2、不能以数字开头3、长度不能超过63个字符
4、变量名中区分大小写
5、变量名不能采用关键字
然后总结下局部变量和全局变量的知识点:
1、局部变量作用域是局部变量所在的局部范围,全局变量的作用域是整个项目(工程)
2、当局部变量与全局变量同名时,以局部变量优先
3、局部变量生命周期是进入作用域生命周期开始,出作用域生命周期结束
全局变量作用域是整个程序的生命周期
二、常量
常量分为以下几种:
1、字面常量
2、const修饰的变量
3、#define定义的标识符常量
4、枚举常量
下面依次讲解这几种常量:
1、字面常量其实就是一些常数,例如30 、19.1、22.3等
2、const修饰的常变量:
看下面的代码
#include<stdio.h>
int main()
{
int a = 20;
//这里创建了一个变量a,类型是整型,值为20
a = 30;
//这里修改了a的值,给a赋值为30;此处没有加const,值可以被更改
//所以a输出的值应该为30
printf("%d",a);
return 0;
}
接下来看下面的代码:
#include<stdio.h>
int main()
{
const int a = 20;
//const 修饰了这个变量a
a = 30;
//这里修改了a的值,给a赋值为30;此处添加const,值不可以被更改
//所以这里程序会报错
printf("%d",a);
return 0;
}
这里说明了,const 修饰的值不可以被更改;下面的代码说明了const修饰的变量本质是一个变量
#include<stdio.h>
int main()
{
char arr[10] = { 0 };
//创建一个数组,数组名是arr,元素个数为10个,数组类型为char类型
//因为数组个数为10,10是一个常数,那么我们可以验证const修饰的常变量
//它到底是不是常数嘞,也就是说,用const修饰一个常变量,
//然后把这个变量放在10所在的位置
const int n = 0;
char arr[n] = {0};
//可以看到编译器报错了,说明这种写法是不行的,
//则const修饰的常变量本质是是一个变量
return 0;
}
上面的例子中的n被称为const修饰的常变量,const修饰的常变量在C语言中只是在语法层面限制变量n不能被直接更改,但是n本质上还是一个变量,所以叫常变量。
3、枚举常量
看下面的代码:
#include<stdio.h>
int main()
{
enum sex
{
MALE,
FEMALE,
SECRET,
};
printf("%d\n",MALE);
printf("%d\n", FEMALE);
printf("%d\n", SECRET);
return 0;
}
看到打印的结果为0 1 2 ;说明枚举常量也是一个常量。
三、字符串、转义字符、注释
3.1 字符串
字符串:由双引号引起来的一串字符称为字符串字面值,简称字符串。例如:“hello world”
#include<stdio.h>
int main()
{
char arr1[] = "bit";
char arr2[] = {'a','b','c'};
char arr3[] = {'a','b','c','\0'};
printf("%s\n",arr1);
printf("%s\n", arr2);
printf("%s\n", arr3);
return 0;
}
附上代码的输出结果并分析造成这种现象的原因:
arr2之所以会出现这样的结果是因为字符结束标志是\0;而arr2中程序找不到\0;所以后面会出现随机值,知道计算机找到\0时,程序才会结束。而arr3里面有\0,那么程序直接输出abc
上面的例子说明了\0是字符串结束标志。
3.2 、转义字符
常见转义字符:
\0 ASCII码值为0
\' 表示字符常量'
\'' 表示字符串内部的双引号
\a 警告字符,蜂鸣
\b 退格符
\\ 表示一个反斜杠,防止它被解释为一个转义序列符
\n 换行
\r 回车
\t 水平制表符
\ddd ddd表示1到3个八进制数字
\xdd dd表示2个十六进制数字
问题:如果想要在屏幕上打印一个双引号和一个斜杠以及单引号需要怎么做?
#include<stdio.h>
int main()
{
printf("\''\n");
printf("\\\n");
printf("\'\n");
return 0;
}
这里来讲讲\ddd 以及\xdd这两个转义字符;看下面的代码:
#include<stdio.h>
int main()
{
printf("%c", '\073');
printf("%c",'\x23');
return 0;
}
\073加单引号的原因是因为这是输出一个字符; 求这个字符的思路是先算出这个数,然后找到这个数所对应的ASCII码值, ASCII码值对应的符号就是这个字符。 \073所对应的十进制数是59;对应ASCII码值是; 所以结果输出; 同理\x23打印#
附上ASCII码表以方便以后查找或者回忆的时候使用。
这里再提示一下数值0、\0、以及字符'0'三者的区别:
1、\0的ASCII码值为0;可以认为\0与数值0相同;
2、字符'0'ASCII码值为48,不可以把它与0和\0混淆
3.3 、注释
注释相对比较简单并且常用,不做汇总了;其实无外乎就是单行注释用//;多行注释用/* 内容*/比较方便;记住两个快捷键,注释用ctrl+K+C;取消注释用ctrl+K+U