初始C语言

本文介绍了C语言的基础知识,包括C语言的定义、编程代码的基本格式、数据类型、常量与变量、字符串和转义字符的使用,以及注释的编写方式。文章强调了学习C语言的心态和理解基本概念的重要性,为初学者提供了清晰的学习路径。
摘要由CSDN通过智能技术生成

C语言基础(初识C语言)

学习是一条无止境的路,如果选择了它,就要坚持不懈的走下去。在学习c语言的路上,总会有一些不可避免的难题,要学会适当调整心态。只要肯学,就不存在学不会。
本章目标:
基本了解c语言的基础知识,对c语言有一个大概的认识。
基础知识不需要过度学习,简单认识即可。

一、什么是C语言。

C 语言是一门通用 计算机编程语言 ,广泛应用于底层开发。 C 语言的设计目标是提供一种能以简易的方式 编译 、处理低级 存储器 、产生少量的 机器码 以及不需要任何运行环境支持便能运行的编程语言。
尽管C 语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的 C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式 处理器 (单片机或称 MCU )以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C 语言语法产生差异,由 美国国家标准局 为 C 语言制 定了一套完整的美国国家标准语法,称为 ANSI C ,作为 C 语言最初的标准。 [1] 目前 2011 年 12 月 8 日,国际标准化组织(ISO )和国际电工委员会( IEC )发布的 C11 标准 是 C 语言的第三个官方标准,也是C 语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与 C++ , Java 等面向对象的编程语言有所不同。
其编译器主要有 Clang 、 GCC 、 WIN-TC 、 SUBLIME 、 MSVC 、 Turbo C 等。

二、C语言编程代码的基本格式。

#include <stdio.h>
int main()
{
    printf("你好!世界!\n");
    printf("hello!world!\n");
    return 0; 
}

运行结果如下所示:

你好!世界!
hello!world!

这里的\n是表示换行操作符,如果不加不会报错,但运行结果会如下所示:

你好!世界!hello!world!

这里要注意,直接打印中文可能会出现乱码。原因是文件编码使用了utf-8的编码。而c语言使用的是gbk的格式。
这里提供一种解决方法:
使用记事本打开该文件,另存为==>将编码格式从utf-8变为ANSI即可。点击确定覆盖即可解决问题。
基本格式浅解:
2.1 #include <stdio.h>:
include在英语中是“包含”的意思,std是英语“标准化”(standardizing)的英文缩写,而io是输入输出的意思,h是头的意思。
所以“include <stdio.h>”的翻译是“包含标准化输入输出的头文件”。
而在计算机看来“#”代表C预处理器(我也不知道这什么东西)在编译器接手之前处理这条指令。“include”是C预处理器指令:编译器编译前对源代码做一些准备工作。
<stdio.h>:它是一个文件,提供键盘输入与屏幕输出的支持,例如常用的“Printf”
2.2 int main():
“int main(void)”是一个函数头。int是整型,void是用来返回空信息。main()是一个函数,C语言的程序代码中必须是有main(),且它是唯一的。函数圆括号“()”是用来识别函数的。
对于初学C语言来说,括号“()”内可不写或写“void”int main()函数是会返回一个整数。main是C语言的开头,当程序运行到main()这一行时,控制权会交给main,运行main函数内的代码(也就是花括号{}的内容)。
2.3函数体:
当运行到printf这一行时,主调函数main()会把控制器给予给函数printf
printf函数运行完后,会把控制权返回给主调函数main()
“return 0;”可以理解为程序的正常退出,毕竟有了开始(main())那自然要有个结尾。

三、数据类型。

数据类型是编程最基本也是最常用到的一块区域。
常用类型:

char字符数据类型
short短整型
int整形
long长整型
long long更长的整形
float单精度浮点数
double双精度浮点数
--------

注:每一种类型的空间大小不同
这里我们可以使用sizeof()来验证各类型大小。

#include <stdio.h>
int main()
{
    printf("%d\n", sizeof(char));
    printf("%d\n", sizeof(short));
    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));
    printf("%d\n", sizeof(long double));
    return 0; 
}
	代码中%d打印的是整型,sizeof()用于打印数据类型的大小。

运行结果如下:

1
2
4
4
8
4
8
8

其中数字大小表示各种数据类型的空间大小,单位为字节,有byte、kb、mb、gb、tb、pb,它们的换算关系为1GB=1024MB 1MB=1024KB 1KB=1024byte。而1字节=8个比特位,比特位是计算机存储数据的最小单位。

四、常量变量。

常量: 不变的值, C 语言中用 常量 的概念来表示,在生活中的有些值是不变的(比如:圆周率,性别,血型,物质本身材质等等)。
变量: 变的值, C 语言中用 变量 来表示(比如:年龄,体重,身高,面貌,工资)。
4.1 定义变量的方法

int age = 15;//年龄
float weight = 45.5f;//身高
char ch = 'w';//字符

首先申明变量类型,然后起一个变量名称(比如身高(weight)、年龄(age)等等),用 = 进行赋值,将值放在等号后面,并习惯性的打上分号。
4.2 变量的分类

全局变量:定义在int main()以外,对整个代码有效

局部变量:定义在某一个范围内用{ }括起来的区域,当出了该范围则无效,如果全局变量和局部变量一起存在,则局部变量优先。
图例:

#include <stdio.h>
int b = 2020;            //全局变量
int main()
{
    int b = 2021;        //局部变量
    
    int c = 2022;        //局部变量
    printf("b = %d\n", b);
    return 0;
 }

打印结果为

b = 2021

4.3 变量的使用

    我们以计算两个数字的和为例
#include <stdio.h>
int main()
{
    int num1 = 0;
    int num2 = 0;
    int sum = 0;
    printf("输入两个数:>");
    scanf("%d %d", &num1, &num2);
    sum = num1 + num2;
    printf("sum = %d\n", sum);
    return 0; 
}

运行结果如下

输入两个数:>

代码中先定义需要输入的两个数字整型int num1=0;int num 2=0;其中赋一个初始值0,在定义一个变量来存放需要输出的值int sum=0;均放上初始值0;先输出一个提示语输入两个操作数:>用scanf(“%d %d”,&num1,&num2)来寻找变量num1和num2的地址,达到对变量随时赋值的目的,sum=num1+num2定义算法,即求两个数的和,并将结果用变量sum来承接,最后用printf来输出sum的值。
4.4 变量的作用域和生命周期
1.作用域: 是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效,可用
的,而限定这个名字的可用性的代码范围就是这个名字的作用域。
(1). 局部变量的作用域是变量所在的局部范围。
(2). 全局变量的作用域是整个工程。
2.生命周期: 变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
(1). 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
(2). 全局变量的生命周期是:整个程序的生命周期。
4.5 常量

C语言中的常量和变量的定义的形式有所差异

    1.字面常量:即已知的值

    2.const 修饰的常变量:对所赋值的变量有固定作用,后续不能改变
#include <stdio.h>
int main()
{
	const int num = 4;
	printf("%d\n", num);
	int sum = 8;//此处对num再赋值已经无效了
	printf("%d\n", num);
	return 0;
};

运行结果如下

4
4

其中const修饰的常变量,对赋值的sum有固定作用,后面再对num赋值则无效,虽然对num固定赋值了,但num的本质任然是变量,只是具有了常量的性质,验证如下:

#include <stdio.h>
int main()
{
	const int n = 10;
	int arr[n] = { 0 };//数组[]中需要的是一个常量,虽然const修饰的n有常属性,但是他的本质是一个变量所以有错误
	return 0;
}

运行结果如下


3.#define 定义的标识符常量 :定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了。例如:对MAX的赋值,在main函数外定义。

#include <stdio.h>
 
#define MAX 10
int main()
{
	int arr[MAX]={0};
	printf(" %d\n", MAX);
	return 0;
}

4.枚举常量:需要一一列举出来,需要用到枚举关键字enum,放在枚举里边的叫枚举常量

#include<stdio.h>
enum people
{
	KID,
	MAN,
	WOMAN,
};                //其中KID,MAN,WOMAN,叫做枚举常量
int main()
{
	printf("%d\n", KID);
	printf("%d\n", MAN);
	printf("%d\n", WOMAN);
	return 0;
}

运行结果如下

0
1
2

五、字符串 and 转义字符

字符串:就是用双引号引起来的一串字符。
转义字符:转义字符是以“\”为开头的字符,后面跟一个或几个字符,其意思是将反斜杠“\”后面的字符转变成为另外的意思。
在这里插入图片描述
有需要的朋友可以自己尝试,这里列举一种,其他的格式都大同小异。
例子:转义字符\?:(注意)在书写连续多个问号时使用,防止他们被解析成三字母词,三字母词存在于老一版的编译器中。

#include<stdio.h>
int main()
{
	printf("(你在干嘛\?\?)\n");//   \?在书写连续多个问号时使用,防止他们被解析成三字母词
	return 0;
}

打印结果如下

你在干嘛??

六、注释

  1. 代码中有不需要的代码可以直接删除,也可以注释掉

     2. 代码中有些代码比较难懂,可以加一下注释文字
     注释有两种风格:
             1.C语言风格的注释 /*xxxxxx*/
                     可惜的是不能嵌套注释
             2.C++风格的注释 //xxxxxxxx
                     可以注释一行也可以注释多行
    

这些是c语言中的最基础也是最易懂的部分,理解这些之后,就可以开始学习选择语句,循环语句,函数,数组,操作符等等。这些我们将在下一期文章中讲到。
这里,小编预祝各位不论是学哪种语言,都能够学有所成!学习之路一帆风顺。早日实现自己的梦想。
在这里插入图片描述

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏皓辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值