初识C语言——C语言基础知识
大家好,我是Brant_zero
以下是我学习C语言的一些过程,我会在此日常更新一些博客来记录我的C语言学习之路,一起共同进步,一起从初阶段开始学习C语言;
首先,不妨我们来基本了解一下C语言的基本知识,来对这些基本知识有一些了解,对C语言有一个大概的认识,以后再对这些基础知识进行拓宽,进行更细致的了解;本篇文章先讲述前4节内容。
- 什么是C语言;
- 来做第一个C语言程序;
- C语言的数据类型
- 变量、常量
字符串+转义字符+注释
- 选择语句
- 循环语句
- 函数
- 数组
- 操作符
- 常见关键字
- define定义常量和宏
- 指针
- 结构体
一、什么是C语言
c语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易 的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
当然对C语言的介绍还有很多对C语言的产生和历史还有很多的故事,大家感兴趣可以去网上浏览 ,这里我就不过多赘述了。
二、第一个C语言程序
#include <stdio.h>
int main ()
{printf ("hello,world\n");return 0;
}
以上就是第一个C语言程序,“hello,world” ,这段代码是初学者入门C语言的最先学习的一段代码。首先,这段代码很多很多新手在刚开始学习的时候并不知道他是什么意思,只是跟着老师或者书本上照敲而已,在次,我以我刚学C语言的角度来讲解一下这段代码。(当然,也可以先不了解这一小段代码的意思,用心背下来,等后面学到函数的时候就会理解的十分透彻);
首先,第一行的#include <stdio.h>这段代码就已经难住了我,为什么要写这段代码啊,这段代码是什么意思啊(这就是我刚开始学代码的时候内心正式的写照),但是没关系,接下来我来给大家讲解一下我对这4行代码的理解,方便你理解记忆。
第一行的代码 #define<stdio.h>
这句代码是引用了一个头文件,表示下面我将使用printf函数在黑屏控制台打印输出的内容,就是打印出“hello,world”,所以这段代码十分重要,我们以后写的每段代码都要用到这个头文件
第二行的代码 int main() { }
这句代码表示的是主函数的意思,main就代表主函数,这个函数返回类型是int,什么是返回类型,一个C语言程序必须要有一个主函数,所以我们写出一个C语言程序,主函数必不可少。这里我们要注意main的旁边有一个空的括号,表示无参数,或者参数为空,也就是main(void),这段代码也是可以的,可以更深的理解主函数,但是还是写main()简洁,可读性强,美观,哈哈
对于这行代码我有四点想告诉大家:
1.main不要打成mian ;
2.记得打小括号;
3.花括号更是不能忘;
4.标点一定要是英文标点,不要用中文输入法打标点!!!
第三行代码 printf (“hello,world\n”);
这句代码的意义在屏幕上打印输出hello,world,而\n的意思是换行的意思,大家可以试一试不加这个\n再运行代码,瞬间就会理解换行是什么意思了。
第四行代码 return 0;
这句代码的意思就是函数返回0;上面说了,函数类型的int,但是参数是空的,所以返回个0就行了,其实也相当于什么也不返回。不理解也没有事情,在后面的学习中会对这段代码的影响越来越强,我们现在应该做的是记下这段代码,并在以后的学习中使用,而且不使用错。
三. 数据类型
以下给大家看一下大家以后会用到的一些基本类型
char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数
double //双精度浮点数
在这我们要先问出这几个问题:
为什么出现这么多的类型?
- 因为对于不同的对象,不同的数据类型更具有代表性
- 这么多的数据类型可以给我们未来的C语言使用带来便捷,更精准
比如名字,体重,薪资,我们可以用不同的数据类型来表述,这样更准确,也易于分类
名字:char ch【20】 = {“brant_zero”};体重:int weight = 120;薪水:int salary = 20000;高薪:long long int High_salary= 30000000000;
使用long long int 而不使用int 是因为int占用4个字节数据范围是
-2147483648~2147483647[-2^31~2^31-1]装不下这个工资的数目~~
每种类型的大小是多少?
大家可以把这些带到自己的编译器低下测试下,看看跑出来的结果是什么;
#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;
}
四.常量、变量
常量就是不会变的量 比如血性、圆周率 等等、
变量就是会变的量 比如身高 体重 头发的数目 等等
在C语言中,不变的值就是常量,会变的值就是变量
①常量
C语言中的常量分为以下以下几种:
1.枚举常量
2.字面常量
3.const 修饰的常变量
4.#define 定义的标识符常量
1.枚举常量
#include <stdio.h>//举例enum Sex{MALE,FEMALE,SECRET};//枚举常量演示printf("%d\n", MALE);printf("%d\n", FEMALE);printf("%d\n", SECRET);return 0;}
括号中的MALE,FEMALE,SECRET就是枚举常量
其中enum是一个关键字,枚举关键字,我们会在以后学习关键字的时候学习到;
2.字面常量
//字面常量演示3.14;//字面常量1000;//字面常量
很普通的数字,字面常量
3.define的标识符常量
//#define的标识符常量 演示#define MAX 100printf("max = %d\n", MAX);
define的意思就是定义 定义一个常量,即定义MAX是一个数值为100的常量;
4. const 修饰的常变量
//const 修饰的常变量const float pai = 3.14f; //这里的pai是const修饰的常变量pai = 5.14 ;//是不能直接修改的!
const 是 constant 的缩写,意思是“恒定不变的”!它是定义只读变量的关键字,或者说 const 是定义常变量的关键字。
const 是 constant 的缩写,意思是“恒定不变的”!它是定义只读变量的关键字,或者说 const 是定义常变量的关键字。
上面例子上的 pai 被称为 const 修饰的常变量, const 修饰的常变量在C语言中只是在语法层面限制了
变量 pai 不能直接被改变,但是 pai 本质上还是一个变量的,所以叫常变量
很多人在学习 const 的时候都会混淆它与 define 的区别。从功能上说它们确实很像,但它们又有明显的不同:
- define是预编译指令,而const是普通变量的定义。define定义的宏是在预处理阶段展开的,而const定义的只读变量是在编译运行阶段使用的。
- const定义的是变量,而define定义的是常量。define定义的宏在编译后就不存在了,它不占用内存,因为它不是变量,系统只会给变量分配内存。但const定义的常变量本质上仍然是一个变量,具有变量的基本属性,有类型、占用存储单元。可以说,常变量是有名字的不变量,而常量是没有名字的。有名字就便于在程序中被引用,所以从使用的角度看,除了不能作为数组的长度,用const定义的常变量具有宏的优点,而且使用更方便。所以编程时在使用const和define都可以的情况下尽量使用常变量来取代宏。
- const定义的是变量,而宏定义的是常量,所以const定义的对象有数据类型,而宏定义的对象没有数据类型。所以编译器可以对前者进行类型安全检查,而对后者只是机械地进行字符替换,没有类型安全检查。这样就很容易出问题,即“边际问题”或者说是“括号问题”。
确实显在聊这些有点早了,不懂也没有大的关系,我们目前只需要知道define和const两个定义的量不同就行了;
②变量:
变量的分类
全局变量
局部变量
#include <stdio.h>int global = 2019;//全局变量int main()
{int local = 2018;//局部变量//下面定义的global会不会有问题?int global = 2020;//局部变量printf("global = %d\n", global);return 0;
}
上程序中的extern 是声明的意思,是对外部符号的声明,比如你在该程序下又创建了一个程序,你只需要在你另外的一个程序中声明这个全局变量,你就可以在你当前的程序中使用到这个变量,比如上图的global变量就可以,声明方式:(extern int global) 你就可以在前范围内使用了
变量的使用
#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;
}
这里又有一个我们未见过的函数——scanf
scnaf的意思是让我们输入两个数,来代替这两个变量的值,比如上图中&num1,&num2,就是在程序的黑屏控制台中我们输入两个数来替代原先num1、num2的值,是一个非常非常常用的函数,希望大家可以掌握;
变量的作用域和生命周期
作用域
作用域是程序设计概念,通常来说一段程序代码中所用到的名字并不总是有效可用的
而限定这个名字的可用性的代码范围就是这个名字的作用域。
1. 局部变量的作用域是变量所在的局部范围。
2. 全局变量的作用域是整个工程。
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2. 全局变量的生命周期是:整个程序的生命周期。
另外 static修饰的局部变量,它的生命周期也会被延长,会和程序的生命周期相同
而static 修饰的局部变量会被系统放置在静态变量区,不宜被改变
以上就是本次文章的分享了,介绍了C语言的框架的几个概念,感兴趣的同学可以点波赞,给我带来一些写博客的动力,一起学习编程,一起进步。
以上仅仅是我个人学习C语言的见解,本人不善表达、才疏学浅,如果有错误的话,请大家批评指正,我一定第一时间来修改。
我们下篇文章再见。
Brant_zero
20201/13
初识C语言——C语言基础知识相关推荐
- R语言可视化绘图基础知识详解
R语言可视化绘图基础知识详解 图形参数:字体.坐标.颜色.标签等: 图像符号和线条: 文本属性: 图像尺寸及边界: 坐标轴.图例自定义等: 图像的组合: #install.packages(c(&qu ...
- c语言二级程序设计题难吗,c语言二级公共基础知识试题特点
二级C一直以来是整个二级考试中试题最多.难度最大.报考人数也最多的考试,以下是由学习啦小编整理关于c语言二级公共基础知识试题特点的内容,希望大家喜欢! 从2008年4月份开始笔试由原来120分钟减少到 ...
- Java编程语言学习:Java语言编程的基础知识之Java的变量与数据类型、符号、运算符、数组Array总结之详细攻略
Java编程语言学习:Java语言编程的基础知识之Java的变量与数据类型.符号.运算符.数组Array总结之详细攻略 目录 Java语言编程的基础知识之Java的变量与数据类型.符号.运算符.数组总 ...
- c语言需要哪些英语基础,学习C语言的必备基础知识(国外英语资料).doc
学习C语言的必备基础知识(国外英语资料) 满卧裹瑟莉筑部获搪肪棱惺杀摄械圭旬敷豹休登悬邱雀报台盼拈毒鹰进怀却恩登雄旁二宇谊婆叔陌嘎扇体歌嫉蹿久题篡憨琵夹涌芦鸣褐颂诅讳拴狸果液梦绸亥氯确杯牌憨耗终贼况榔 ...
- C语言中重要基础知识的概述
本章主要对于C语言中的基础知识进行一个大致的描述,适合有C语言基础但长久没接触C语言开发的人员进行快速回忆.在总体回忆基础知识之前,先来创建一个C程序.笔者的编译器是visual stduio2013 ...
- python语言入门w-python基础知识(一)
最近花时间整理了一下以前学过的python基础知识,语言最多的是使用. 1.1 开发模式 交互模式:简单的调试或者测试 开发流程 创建以.py结尾的python文件 在python文件中输入打印&qu ...
- c语言二级考试基础知识,2018年计算机二级考试《C语言》考点:C语言基础知识...
2017年计算机等级考试已经结束,出国留学网为考生们整理了2018年计算机二级考试<C语言>考点,希望能帮到大家,想了解更多资讯,请关注我们,小编会第一时间更新哦. 2018年计算机二级考 ...
- 计算机二级c语言公共基础题,计算机二级C语言笔试公共基础知识课后习题及答案...
全国计算机等级考试二级公共基础知识课后习题及答案1 第一章数据结构与算法 一.选择题 1.算法的时间复杂度是指( ) A. 执行算法程序所需要的时间 B. 算法程序的长度 C. 算法执行过程中所需要的 ...
- go get 拉取指定版本_go语言学习笔记-基础知识-3
相关文档 go语言学习笔记-目录 1.简介 1.1 什么是GO Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易.Go是从2007年末由Robert Griesemer, Rob ...
- 第1章 初识计算机病毒 1.1 计算机病毒基础知识
第1章 初识计算机病毒 这一章将从概念上简要介绍计算机病毒的基本知识以及计算机病毒的命名,通过对这些概念的了解,从而使我们能更方便的阅读有关计算机病毒信息的文档和书籍. 1.1 计算机病毒基础知识 ...
最新文章
- Sharepoint带自定义属性的FieldType
- POJ 1144 Network(无向图连通分量求割点)
- 耗时一个月,整理出这份Hadoop吐血宝典
- Oracle备份时发现空间不够,存储空间比较紧张的情况下,如何提升Oracle备份的去重率?...
- Python回归模型评估
- 深入理解javascript原型和闭包(18)——补充:上下文环境和作用域的关系
- RabbitMQ快速入门--消息模型介绍
- 【转】DICOM简述!!!!
- Chrome浏览器获取XPATH的方法----通过开发者工具获取
- 鸿蒙系统2017就有,北京汽车首款搭载鸿蒙系统燃油SUV即将亮相
- 【方便自己使用】KKT条件
- java读取yaml数据_Java类读取Yaml内罐
- c语言c99标准_C语言的三套标准:C89、C99和C11
- 冒泡排序java代码_美团面试,我竟然输给了冒泡排序。。。
- leetcode771题
- Glide4.0源码全解析(三),into()方法背后的故事
- 阿里云存储负责人吴结生:我经历的三个重大决策
- jdk环境变量的配置
- Unity Wwise 自己使用
- 远程打印服务器配置,打印服务器的配置与管理(1) 网络打印机的安装与部署...