
文件名后缀非常重要,C语言把 .c 为后缀的文件称为源文件,把 .h 为后缀的文件称为头文件,C++语言则把.cpp为后缀的文件称为源文件,在创建新的空项目后要修改后缀名,

如图,鼠标右键点击【解决方案资源管理器】,光标移动到【源文件】上,会出现【添加】,点击【新建项】,会出现这个界面——

这里默认的文件后缀是.cpp,即C plus plus,是C++的另一种书写形式,默认为C++的源文件,需手动修改为.c后缀,点击【添加】,即可编写代码了!
库函数的概念:为了不再重复实现常见的代码,让程序员提升开发效率,C语言标准规定了⼀组函数,这些函数再由不同的编译器厂商根据标准进行实现,提供给程序员使用。这些函数组成了⼀个函数库,被称为标准库,这些函数也被称为库函数。在这个基础上⼀些编译器⼚商可能会额外扩展提供部分函数(这些函数其他编译器不⼀定支持)。
通俗地讲,库函数就是C语言仓库里有的、直接能用的,注意,库函数使用需要包含头文件,以printf库函数为例,printf库函数需要包含的头文件如下——
#include <stdio.h>下图中代码中使用了 printf 函数,实现了信息在屏幕上的打印,printf 就是⼀个库函数。
printf("hello C\n")"std"是standard(标准)的缩写,"i"即input(输入),"o" 即output(输出),".h"是头文件。
在这里我再介绍一下printf函数的一些知识点,printf即print (打印)+ format (格式),下面举几个例子——
printf("%c",'q');//%c表示打印字符
printf("%d",123);//%d表示打印整数
printf("%f",3.5);//%f表示打印小数,默认小数点后6六位其中%c、%d、%f都是占位符,在代码中分别用q、123、3.5替换 。

,

1、Ascll码值:0~127 2、0~31为不可打印字符无法在屏幕上观察
3、A~Z:65~90 3、a~z:97~122 4、大写字母和小写字母的Ascll码值的差值为32
5、大写字母与小写字母的Ascll码值转换:大写字母Ascll码值+32=小写字母码值
6、\n的Ascll码值:10 7、0~9的Ascll码值:48~57
8、'0'——字符0——48;0——数字0——0
9、dec——十进制,oct——八进制,hex——十六进制,ch——字符
注意:\0是字符串结束的标志
如图所示

这时我们不禁产生了一个疑问:为什么会出现一些随机值?显然,这就是因为arr1在末尾的时候没有\0字符作为结束标志,如下图所示——
char arr1[]={'a','b','c'};为什么arr2打印正常?这是因为双引号里的是字符串,默认有\0。
只要对arr1的代码稍作修改就能避免出现随机值,具体修改如下——
char arr1[] = { 'a','b','c','\0' };我们在使用库函数 printf() 打印字符串或者strlen() 计算字符串长度的时候,遇到\0 的时候就自动停止了,值得留意的是,计算字符串长度时只计\0之前的字符。
知识点:
\ddd:表示1~3个八进制数字 , 如: \130 表示字符X
\xdd:表示2个十六进制数字 , 如: \x30 表示字符0
我们通过一个例子来加深一下印象——
问:\189 是一个\ddd型转义字符吗?——答:不是,因为8和9不在八进制的数字范围之内
在此补充拓展一个知识点,这对于理解数字符长度中很有帮助——
二进制的数字:0~1 八进制的数字:0~7 十进制的数字:0~9 十六进制的数字:0~15
我们先来了解一些概念:
1、sizeof 是⼀个关键字,也是操作符,专门是用来计算sizeof的操作符数的类型长度的,单位是字 节。
2、sizeof 操作符的操作数可以是类型,也可是变量或者表达式。
3、sizeof 的操作数如果不是类型,是表达式的时候,可以省略掉后边的括号的。
4、sizeof 后边的表达式是不真实参与运算的,根据表达式的类型来得出大小。
5、sizeof 的计算结果是 size_t 类型的——为了程序的可移植性,C语言创造了⼀个类型别名 size_t ,用来统一表示 sizeof 的返回值类型。
举个例子,如下图所示——
#include <stdio.h>
int main()
{
int a = 10;
printf("%zd\n", sizeof(a));
printf("%zd\n", sizeof a);//a是变量的名字,可以省略掉sizeof后边的()
printf("%zd\n", sizeof(int));
printf("%zd\n", sizeof(3 + 3.5));
return 0;
}重点来了!.sizeof 中的表达式不计算!
//测试:sizeof中表达式不计算
#include <stdio.h>
int main()
{
short s = 2;
int b = 10;
printf("%d\n", sizeof(s = b+1));
printf("s = %d\n", s);
return 0;
}在编译期间已经将sizeof处理掉了,表达式的执行却要在程序运行期间才能执行,所以在运行期间就不会执行表达式了。
signed关键字:表示一个类型带有正负号
unsigned关键字:表示一个类型不带有正负号,只能表示正整数和零
注:对于 int 类型,默认是带有正负号的,也就是说 int 等同于 signed int,所以说直接写int默认有符号,相当于省略了signed——
signed int a;
// 等同于int a;int 类型也可以不带正负号,只表示非负整数,这时就必须使用关键字 unsigned 声明变量,unsigned int ⾥⾯的 int 可以省略,写成这样——
unsigned a;但是对于char类型,C语言规定 char 类型默认是否带有正负号,由当前系统决定。这就是说,char 不等同于 signed char ,它有可能是 signed char ,也有可能是unsigned char 。
signed char c; // 范围为 -128 到 127
unsigned char c; // 范围为 0 到 255这⼀点与 int 不同, int 就是等同于 signed int 。
这里就直接开门见山啦,全局变量与局部变量同名时,局部变量优先,正应了那句俗话“强龙不压地头蛇”,代码示例如下:
#include <stdio.h>
int n = 1000;
int main()
{
int n = 10;
printf("%d\n" n);//打印的结果是多少呢?
return 0;
}打个比方,全局变量是共享单车,局部变量就是家用自行车,家里都有自行车哩,还会去骑共享单车嘛,当然这只是个玩笑,并不严谨哈。
全局变量和局部变量在内存中存储在哪里呢?算术操作符有哪些?等等内容将会在之后的博客中更新。
结语:本篇文章就到此结束了,本文为友友们分享了C语言的一些常见概念、数据类型以及变量的一些重要知识点总结,如果友友们有补充的话欢迎在评论区留言,下一期我们将继续介绍操作符剩下的一些重要知识点,感谢友友们的关注与支持!