文章目录
前言
对于刚入门的编程小白,你可能会有很多问题和疑惑,不知从哪里下手,这时你需要有全局的意识,认识到C语言的大概知识,这有利于你更好的了解C基础,让C变得简单易懂。
这里的知识是对整个C语言基础知识的介绍,对知识点只是简单的介绍,并不会详细的介绍,为了让入学的编程者对C有一个大概的认识,以后我会通过后面的文章来详细介绍每个重要的知识点.
通过阅读本篇文章,相信你就可以理解并阅读一些别人的代码,自己也可一些简单的代码.
本文开始
本文重点
- 详细了解第一个C语言程序
- 数据类型的认识
- 变量与常量的认识
- 字符串与转义字符
- 注释的使用
- 初识选择语句
- 初识循环语句
- 初识函数
一、快速上手第一个C程序
1)第一个程序
#include<stdio.h>
int main()
{
printf("hello word\n");
//""双引号里面包含的是字符串
return 0;
}
【注释】:
头文件含义:stdio -> std intput output(标准输入输出)
.h header
main是主函数,在一个程序中仅有一个(main不能重复出现);
a:main还是一个程序的入口()在执行时先进入主函数的第一行,图示如下
b:int与return 相关联
c: # 为预处理指令,预处理指令开头规定写 #.
例如:#include #define
2)
a:不标准的写法
没有返回值类型不完整
main()
{
printf("hello word\n");
return 0;
}
b:不建议的写法(太过古老)
void main()
{
printf("hellow word\n");
return 0;
}
二、对于C数据类型的认识
存储数据的类型多样,正好满足生活中各样的值,让我们来了解一些吧!
测量数据类型大小使用 sizeof(类型或变量);
单位:字节
sizeof 为操作符
1、char
字符型:一个字节
2、short
短整型:两个字节
3、int
整型:四个字节
4、long
长整型:四个整形
5、long long
长长整形:八个字节
6、float
单精度浮点型:四个字节
7、double
双精度浮点型:八个字节
#include<stdio.h>
int main()
{
printf("%d\n", sizeof(char));//1
printf("%d\n", sizeof(short));//2
printf("%d\n", sizeof(int));//4
printf("%d\n", sizeof(long));//4
//C语言标准规定
//sizeof(long)>=sizeof(int)
//不同标准的平台下long的大小不同,
//有可能4个字节也有可能8个字节
printf("%d\n", sizeof(long long));//8
printf("%d\n", sizeof(float));//4
printf("%d\n", sizeof(double));//8
return 0;
}
打印用%d,打印的是十进制的整数
%c:打印char类型
%f:打印float类型
%lf:打印double类型
%zu:专门打印sizeof的返回值
好奇小白可能会问,C语言有字符串类型?
其实C语言中没有字符串类型,一般存储字符都会使用字符数组(以后会了解是存放字符的数组),所以一般来说并没有单独定义字符串类型.
数据单位的认识
只知道数据类型还不够呀!我们也需要了解数据的单位,为进步了解数据的内存做好铺垫!!!
1)、最小单位bit(存放二进制数)
1byte = 8bit
1KB = 1024byte
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
三、变量的认识
1、定义变量的方法
类型名+变量名=赋给变量的初始值
int a=0;
定义变量也可以不赋值,但内存中会给随机值
int a;
2、变量的命名
变量只能是由数字,字母,下划线组成
变量开头必须是字母或者下划线(Byte/_bate),不能是数字开头(2te)
变量名不能使用关键字
3、变量分类
[注]{ }内部称为局部变量,{ }外部称为全局变量
a:局部变量
{ }花括号内,当定义变量时就是生命周期的开始,出花括号时生命周期结束.
#include<stdio.h>
int main()
{
{
int a=10;
printf("%d\n",a);//1
}
printf("%d\n",a);//2
return 0;
}
- 上述代码a出花括号时就会被销毁,第2个a根本打印不出来,编译器会报错!
b: 全局变量:生命周期作用与整个工程
- 两个a全部都能打印,a在这里作为全局变量,那个函数中使用都可以打印a的值
int a=20;
void text()
{
printf("%d\n",a);2
}
#include<stdio.h>
int main()
{
text();
printf("%d\n",a);//1
return 0;
}
当局部变量遇见全局变量时:实行局部优先原则
int a=20;//全局变量
#include<stdio.h>
int main()
{
int a=10; //局部变量
printf("%d\n",a);//10
return 0;
}
说明:
- 作用域:限制代码中名字的可用范围
- 生命周期:变量的创建到变量销毁的时间段
四、常量的认识
-
字面常量(直接写)
整形,浮点型,字符,字符串
34 , 3.14 , ‘a’ , “abcdef” -
const修饰的常变量( 具有常属性的变量,本质为变量 )
const int n = 10; --修饰的n常量,但不能修改
const为什么修饰常变量呢?让我们来看看吧!
例:int a[常量表达式];
数组里放的是常量表达式,如果放入n(int a[n])就执行错误,说明const修饰常变量. -
#define定义的标识符常量
#define MAX 10
修饰的MAX在程序中不可修改
标识符的定义也为程序的可操作性更加便捷
对于一个程序如果你需要使用10这个值可以直接使用MAX,当程序需要20时,直接更改标识符常量就可让程序中所以MAX更改为10,让程序更方便操作.
- 枚举常量enum
- 枚举常量默认从0开始,当打印时从0开始打印,往后一次+1,第二个打印1…
enum Sex
{
MALE,
FEMALE;//enum包含的都是枚举常量
};
#include<stdio.h>
int main()
{
printf("%d\n",MALE);//0
printf("%d\n",FEMALE);//1
//枚举常量默认从0开始,往下的枚举常量是1,2,3...一次增1
return 0;
}
五、字符串与转义字符
- 字符串
字符串:由双引号(" ")引起了的内容称为字符串
样例:“hello word”
[注] 字符串的结束标志\0,每个字符串默认带有\0
在计算字符串长度时,只计算\0之前的字符
为什么要特意强调字符串的结束标志\0呢?让我们用下面代码看一看吧!
#include<stdio.h>
int main()
{
char arr1[] = "abcd";
char arr2[] = { 'a','b','c','d' };
char arr3[] = {'a','b','c','d','\0'};
printf("%s\n",arr1);
printf("%s\n", arr2);
printf("%s\n",arr3);
return 0;
}
- 由上述代码结果可知arr2 越界访问 出现错误,这是由于字符串没有\0作为结束标志,编译器无法停止而导致的错误.但是加上\0就可以避免错误了,所以要 重视\0 哦.
2.转义字符
顾名思义,由名字就可知道,可以改变原来字符的意思
让我们看看如下代码实践一下吧!
#include<stdio.h>
int main()
{
printf("\code-date\\text.c\n");
return 0;
}
看到结果怎么样,和你的想法一致?它就是转义字符的妙处.
说了怎么多,让我再来分享一些转义字符吧!
转义字符
- \?: 在比较老的版本编译器,可能会被解析成三字母词
例如:??) => ] - \ ’ :用来表示字符常量 ’
- \ " :表示字符串内部的双引号
- \ :表示一个反斜杠
- \a:警告字符
- \b:退格符
- \f:进纸符
- \n: 换行
- \r: 回车
- \t: 水平制表符
- \v:垂直制表符
- \ddd:ddd表示三个8进制的数字
例如:\130 =>X - \xdd:dd表示两个十六进制数字
例如:\x30 => 0
解释 :\ddd与\xdd
1.\ddd 三个d表示 1~3个8进制数字
可表示为:\66 ,\2 ,\130
2.\xdd \x说明是十六进制数字,
可表示为:\x30
你可能好奇什么是8进制,什么是十六进制?让我们接着shuom?
我们最常见的是十进制,以十进制为例:
十进制:0 1 2 3 4 5 6 7 8 9(满10进1)
八进制:0 1 2 3 4 5 6 7(满8进1)
十六进制:0 1 2 3 4 5 6 7 8 9 A B C D E F(满16进1)
六、注释的使用
注释有两种:
- C语言注释风格:/…/
有很大缺陷不能嵌套使用,它终会找里的最近的为一对,把包含的内容注释起来,余下的就会出现错误 - C++风格注释://…
可以嵌套使用,十分方便,我推荐大家使用
七、初识选择语句
代码的实现联系着生活,生活中我们面临很多选择.
是努力学习,还是直接躺平呢?
这里我们就用代码实现一下吧!
看你如何选择!
这里只是简单介绍一下选择,对选择的知识只是点的为止.
#include<stdio.h>
int main()
{
int code;
printf("好好学习,干代码,可能成功 干?选择(0or1)>\n");
scanf("%d", &code);
if (code == 1)
{
printf("坚持到成功,找到工作!!!\n");
}
else
{
printf("回家种地...\n");
}
return 0;
}
八、初识循环语句
循环是指一直重复做的事情,像我们需要日复一日的学习,日复一日的敲代码.
让我来介绍一下C语言中的循环:
- while
- do while
- for
这里以while循环为例,对循环的知识只是点到为止,以后的文章会为大家详细介绍.
#include<stdio.h>
int main()
{
printf("好好学习编程,干代码\n");
int line = 0;
while (line < 100000)
{
//行数小于100000继续干代码
line++;
printf("我要干代码\n");
}
if (line = 100000)
{
printf("好offer\n");
}
return 0;
}
九、初识函数
函数是C语言把函数独立,方便其它调用函数
我们可以在主函数里面求两个数的和,那调用函数怎么做呢?让我们来看看吧!
#include<stdio.h>
//创建的求和函数
int add(int n1, int n2)//整型传递整型接收
{
int s = 0;
s = n1 + n2;
return s;//返回值
}
int main()
{
int n1 = 3;
int n2 = 5;
//调用函数求值
int ret = add(n1, n2);
printf("%d\n", ret);
return 0;
}
通过调用函数,调用函数的返回值返回到主函数,完成调用再把值打印出来.
- 这是基本的函数调用,就是你需要的是什么函数,先在主函数中声明,在主函数外部定义,让这个函数执行你想要的功能(例如上述代码让其执行加法功能),函数的调用大大简化了主函数里面的内容,让代码的思路更加清晰,如果都写在主函数中,你可能分不清到底在执行什么.这只是简单的介绍函数的功能,以后的文章会详细介绍函数的作用,如果对你有帮助记得关注我来看哦!
总结
本篇文章介绍了第一个程序每部分的详解,了解C语言的大概知识,基本的C知识希望给编程初学者一些借鉴,希望能帮助你们进一步掌握C的基础知识。如果对你有帮助记得三连点赞!!!