前言
欢迎各位小伙伴,这一篇,只是为了让我们对C语言有一个大概的认识,每个知识点并不会讲的很深,之后我也会持续更新博客,对这些知识进行拓宽,进行更细致的描述。
C语言是一门面向过程的、抽象化的计算机编程语言,广泛应用于底层开发。
C语言拥有经过了漫长发展历史的完整的理论体系,在编程语言中具有举足轻重的地位。
了解更多
#include
int main()
{
printf("hello world\n");
return 0;
}
麻雀虽小,五脏俱全。这段代码是我们接触C语言时,遇到的第一个代码,虽然很短,但对我们认识C语言有很大的帮助。
要注意的是:
- 使用printf()函数就一定要在头文件中加入#include
- 一个C程序中一定会有一个main函数,也只能有一个main函数
- main函数是程序的入口。程序第一个读取的就是main函数,而不是第一行
- printf()是格式输出函数
- \n是转义字符,表示换行
- return是函数的返回值,根据函数类型的不同,返回的值也是不同的
以下给我们以后会用到的一些基本类型:
char //字符数据类型
short //短整型
int //整型
long //长整型
long long //更长的整型
float //单精度浮点数
double //双精度浮点数
对不同的对象,我们用不同的数据类型表示更具有代表性。
比如姓名,年龄,身高,我们可以用不同的数据类型来表述,这样更准确,也易于分类。
char ch[20]='zhangsan'; //姓名
int age=18; //年龄
float h=168.3f; //身高
这几种数据类型所占内存的空间大小会相同吗?
大家可以将下面代码在自己的编译器上实现,看看运行的结果:
#include
int main()
{
printf("%d\n",sizeof(char));
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(long));
printf("%d\n", sizeof(long long));
printf("%d\n", sizeof(float));
printf("%d\n", sizeof(double));
return 0;
}
sizeof()函数是用来计算数据及数据类型所占空间的大小的,单位是字节
在生活中,有不改变的量(血型,身份证号),也有变化的量(年龄,身高)
在C语言中,把不会改变的量,用“常量”表示;变化的量,就用“变量”表示
char ch='j';
int age=18;
double h=1.68lf;
变量创建的本质:是在内存中开辟一块空间,存放数据
变量的命名是有规则:
#include
int a = 1; //全局变量
int main()
{
int b = 2; //局部变量
printf("%d %d\n", a, b); //输出结果:1 2
return 0;
}
这里,我们在{ }外面定义的变量a就是全局变量,在main()函数内部的变量b 就是局部变量。
那么当b与a同名时,输出结果会是什么呢?
#include
int a = 1; //全局变量
int main()
{
int a = 2; //局部变量
printf("%d %d\n", a, b);
return 0;
}
运行结果:
当局部变量与全局变量同名的时候,局部变量优先使用
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用
的而限定这个名字的可用性的代码范围就是这个名字的作用域
1.局部变量的作用域是变量所在的局部范围。
2.全局变量的作用域是整个工程。
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
这里的销毁是,把空间还给操作系统
1.局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2.全局变量的生命周期是:整个程序的生命周期。
我们进一步了解一下变量的作用域与生命周期
这段代码中,我们定义的变量a在第二个{}里,即它的作用域,出了这个{}就不起作用了。
如果我们希望输出a,就需要在{}前先做
定义。
代码如下:
#include
int main()
{
int a = 10;
{
a = 5;
}
printf("%d\n", a);
return 0;
}
运行结果:
说明:
如果源文件需要引用其他文件中的变量,我们可以在文件中用extern声明
能够被其他模块以extern修饰符引用到的变量通常是全局变量。
C语言中的常量分为以下几种:
#include
enum color
{
RED,GREEN,BLUE//枚举常量
};
int main()
{
//字面常量
3.14;
'a';//字符
"abc";//字符串
//const修饰的常变量
const int pi=3.14f;//这里的pi是const修饰的常变量,具有常属性,但本质还是变量
pi=2.6;//pi是不能直接修改的
//变量一旦定义就不能修改
//#define
#define SIZE 10
printf("size = %d\n",SIZE);//输出:10
//枚举常量
printf("%d\n",RED);//输出:0
printf("%d\n",GREEN);//输出:1
printf("%d\n",BLUE);//输出:2
//枚举常量的默认是从0开始,依次向下递增1
return 0;
}
"hello world"
这种由双引号引起来的一串字符称为字符串字面值,简称为字符串.
注:字符串的结束标志是一个\0的转义字符。在计算字符串长度的时候\0是结束标志,不算作字符串内容。
#include
#include
int main()
{
char a1[] = "hello";//这里隐藏了\0
char a2[] = { 'h', 'e', 'l', 'l', 'o' };
char a3[] = { 'h', 'e', 'l', 'l', 'o', '\0' };
printf("%s\n", a1);
printf("%s\n", a2);
printf("%s\n", a3);
return 0;
}
strlen()计算字符串的长度,即字符的个数,遇到’\0’结束,不包括结束字符’\0’
sizeof()计算的是数据所占空间内存的大小,单位是字节
#include
int main()
{
printf("c:\code\test.c\n");
return 0;
}
转义字符 | 释义 |
---|---|
? | 在书写连续多个问号时使用,防止他们被解析成三字母词 |
’ | 用于表示字符常量 |
" | 用于表示-一个字符串内部的双引号 |
\ | 用于表示一个反斜杠,防止它被解释为-个转义序列符 |
\a | 警告字符,蜂鸣 |
\b | 退格符 |
\f | 换页符 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ddd | d d d表示1-3个八进制的数字。如: \130 表示字符X |
\xddd | d d表示2个十六进制数字。如: \x30 表示字符0 |
了解了转义字符后,我们可以看看下面代码中的字符串长度。
#include
#include
int main()
{
printf("%d\n",strlen("c:\test\178\x65\test"));//13
return 0;
}
#include
int Fun(int x, int y)//定义乘法函数
{
return x*y;
}
/*C语言注释风格
int Sum(int x, int y)
{
return x + y;
}
*/
int main()
{
//C++注释风格
//int a, b;
//printf("%d\n", Sum(10, 20));//调用Sum函数,完成加法
printf("%d\n", Fun(10, 20));//调用Fun函数,完成乘法
return 0;
}
注释的两种风格:
- C语言风格的注释 /xxxxxx/
缺陷:不能嵌套注释- C++风格的注释 //xxxxxx
可以注释一行也可以注释多行
以上就是我这次文章的分享,对C语言的几个基础概念进行了总结,希望对大家有所帮助。如果有不对的地方,还希望大家可以评论指正,我一定会及时来修改的。
路漫漫其修远兮~
我们下篇文章再见。