C语言基础2
一、变量的作用域
局部变量的作用域是变量所在的局部范围,全局变量的作用域是整个工程。
int main() {
{
int a = 10;
printf("a = %d\n", a);
}
printf("a = %d\n", a); //报错位置
return 0;
}
这里会发生报错: “a”: 未声明的标识符。 可见a是局部变量其作用域仅在自己的括号内
int a = 10;
int main() {
{
printf("a = %d\n", a);
}
printf("a = %d\n", a);
return 0;
}
全局变量的作用域是整个工程
extern int a; void test() { printf("a = %d\n", a); } int main() { test(); { printf("a = %d\n", a); } printf("a = %d\n", a); return 0; }
二、变量的周期
局部变量的生命周期,进去作用域生命周期开始,出作用域生命周期结束
全局变量的生命周期,整个程序的生命周期
三、常量
1.字面常量
1.int main() {
30;
3.14;
"abc"; //字符常量
return 0;
}
2.const修饰的常变量
2.int main() {
const int a = 10; //c语言中,const修饰的a,本质是变量,但是不能直接修改,有常量的属性但是变量
a = 20;
printf("a = %d\n", a);
return 0;
}
左值指定 const 对象 a不可修改
3.#define定义的标识符常量
3.#define MAX 100
#define STR abcd
int main() {
printf("%d\n", MAX);
int a = MAX;
printf("%d\n", a);
printf("%s\n", STR);
return 0;
}
4.枚举常量
4.enum Color {
RED,
GREEN,
BLUE
};
enum Sex {
MALE,
FEMALE,
SECRET
};
int main() {
//三原色
int num = 10;
enum Color c = RED;
return 0;
}
四、字符串
int main() {
//char字符类型
//'a' 单引号字符
char ch = 'w';
//"abcder" 双引号字符串
return 0;
}
字符串以 \0 为结束标志
int main() {
//char字符类型
//'a' 单引号字符
char ch = 'w';
//"abcder" 双引号字符串
char arr1[] = "abcdef";
char arr2[] = { 'a','b','c','d','e','f' };
return 0;
}
运行结果:
char arr2[] = { 'a','b','c','d','e','f','\0'};
造成这种的原因是因为字符串是以\0结尾,而双引号""会自动在末尾帮我们添加一个\0,在Visual Studio中我们可以通过 调试-窗口-监视来查看变量
strlen() --求字符串的长度 头文件是string.h
#include <string.h>
int main() {
int a = strlen("abc");
printf("%d\n", a);
return 0;
}
运行结果:3
在我们用printf()函数以字符串形式进行输出时,只有遇到'\0'才会停止输出!
当我们在使用{}字符串的定义的 方式时我们一定要记得加上字符串的结束标志,虽然我们有时候用不到,但这却是我们必须要做的,这也是一个合格的程序员必备的素养,当然,有的时候确实并不需要加上,在新手期间,建议还是加上。
五、转移字符
\n换行 int main(){ printf("hello worldn"); return 0; }
int main(){ printf("hello world\n"); return 0; }
\0 字符串的结尾
printf("abcd0fe"); 输出结果为 abcd0fe
printf("abcd\0fe"); 输出结果为abcd
转义字符 | 意义 | ASCI码值(十进制) |
\a | 响铃 | 007 |
\b | 退格 | 008 |
\f | 换页 | 012 |
\n | 换行 | 010 |
\r | 回车 | 013 |
\t | 水平制表 | 009 |
\v | 垂直制表 | 011 |
\\ | 代表一个反斜杠\ | 092 |
\' | 表示单引号 | 039 |
\" | 表示双引号 | 034 |
\? | 表示问号 | 063 |
\0 | 空字符 | 000 |
\ddd | 1到3位八进制数代表的任意字符 | 三位八进制 |
\xhh | 十六进制代表的任意字符 | 十六进制 |
六、注释
C语言注释有两种
-
/* 注释内容 */
-
//注释内容