IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言入门必备知识【上】 -> 正文阅读

[C++知识库]C语言入门必备知识【上】

目录

1.用“hello world”打开新世界的大门

2.基本数据类型

3.变量与常量

3.1变量

?3.2变量的使用

?3.3变量的作用域和生命周期

3.3.1作用域

?3.3.2生命周期

3.4常量

3.4.1字面常量

3.4.2 const修饰的常变量

?3.4.3?#define 定义的标识符常量

?3.4.4 枚举常量

4.字符串

4.1 字符串

4.2 常量字符串

5.转义字符

6.注释

总结


1.用“hello world”打开新世界的大门

相信很多小伙伴在学习编程语言的过程中,不管是什么语言,接触到的第一个代码一定会是“hello world”,在C语言的学习过程中也不例外。下面我们来看看这个代码:

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

值得注意的是:在C语言中,main函数是一个程序的入口(ps:一个工程中有且仅有一个main函数),一个完整的程序必须有主函数;如果没有,程序将无法运行。main函数的返回类型一般为int,且返回值为0。主函数的主体如下:

int main()
{
    //函数中要实现的内容

    return 0;
}

?#include <stdiio.h> 的目的是为了让我们可以访问标准I/O库中的函数(例如scanf和printf),这组函数用于执行输入和输出。

2.基本数据类型

在C语言中,仅有4种基本数据类型——整型、浮点型、指针和聚合类型(如数组和结构等)。

整型和浮点型如下:

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

注意:设计char类型变量的目的是为了让他们储存字符型值。

值得一提的是,C语言的数据类型中之所以没有字符串类型,是因为C语言可以通过字符数组的形式来存储字符串。

我们可以通过关键字 sizeof 来计算各种数据类型的大小:

ps:关键字 sizeof是计算变量所占空间大小的关键字,单位是字节。

看到这里可能有人就要问了:为什么 long 和 int 计算出来的大小一样啊?那是因为C语言中规定长整型的大小至少应该和整型一样,在不同的编译器中long的大小可能不同。

?正因为C语言中有这么多的数据类型并且各种类型的大小不同,更加丰富地表达了生活中的各种值。

3.变量与常量

3.1变量

变量分为全局变量和局部变量

下面我们来看一下全局变量和局部变量的区别:

?小结:简单来讲,最大花括号外(可以理解为主函数和其他函数外)定义的变量为全局变量;花括号内定义的变量为局部变量。

当局部变量与全局变量重名的时候,局部变量优先。

?3.2变量的使用

?ps:当我们在使用变量的时候,最好将变量初始化,如果我们不初始化,这个变量内存的就是一个随机值。

?3.3变量的作用域和生命周期

3.3.1作用域

作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用 的,而限定这个名字的可用性的代码范围就是这个名字的作用域。

1.局部变量的作用域就是变量所在的局部范围。当出了这个范围后,再次使用就会报错(未定义的标识符)

?2.全局变量的作用域为整个工程(不管是否在同一个源文件,当定义的全局变量不在同一个源文件时,只需要加上extern这个关键字就能使用该全局变量)。

?3.3.2生命周期

变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。

2. 全局变量的生命周期是:整个程序的生命周期。

3.4常量

C语言中的常量分为以下以下几种:

字面常量

const 修饰的常变量

#define 定义的标识符常量

枚举常量

3.4.1字面常量

int main()
{
    //字面常量演示
    6.66 //字面常量
    6000 //字面常量
    return 0;
}

3.4.2 const修饰的常变量

当一个变量被const修饰后,他就具有了常属性。不能直接修改他的值。

但如果仍想要修改,可以通过指针来进行修改。

?尽管当变量被const修饰后具有了常属性,但他的本质还是一个变量!!

?如图,在定义数组时,[ ]内的值必须是一个常量,尽管p具有了常属性,但他仍然时一个变量。

?3.4.3?#define 定义的标识符常量

?通过arr数组的定义我们就可以发现,MAX实际上是一个常量。define关键字定义的常量会在预处理阶段将所有的MAX替换为1000。

?3.4.4 枚举常量

枚举类型是指他的值为符号常量而不是字面值的类型。它们以下面这种形式声明:

enum sex
{
    male     //如果不特意声明的话,male的值为0,后面的依次加1
    female
    secret
}

此时male为0,female为1,secret为2。

如果将female赋值为20,那么male为0,secret为21。

4.字符串

4.1 字符串

"hello world\n"?

这种由双引号引起来的一串字符称为字符串字面值或者简称字符串

ps:字符串的结束标志是 \0 的转义字符,在计算字符串长度的时候遇到? \0? 就结束,不算作字符串内容。尽管字符串中的 \0 转义字符不计入字符串长度,但仍要占用空间。

?arr1中有6个字符,所以在计算出的长度为6,一个字符所占的空间为一个字节,而arr1计算出的为7个字节,刚好印证了上面所说的 \0 也要占用空间。

arr2中只有3个字符,但是没有包含 \0 ,所以求出来的字符串是一个随机值。

4.2 常量字符串

在字符串常量的储存形式中,所有的字符和 '\0' 都储存于内存的某个位置。

字符串常量一般和指针放在一起讨论,因为在程序中使用字符串常量会生成一个“指向字符的常量指针”。当一个字符串常量出现于一个表达式中时,表达式所使用的值就是这些字符所储存的地址,而不是这些字符本身。因此,可以把字符串常量赋值给一个“指向字符的指针”,后者指向这些字符所储存的地址。但是,不能将字符串常量赋值给一个字符数组,因为字符串常量的直接值是一个指针,而不是这些字符本身。

char? ? * message = "hello world! ";

这条语句把message声明为一个指向字符的指针,并用字符串常量中第一个字符的地址对该指针进行初始化。?

5.转义字符

当我们要在屏幕上打印一个目录为? ?"c:\code\test.c\n"? 时,

我们应该怎样写代码?下面这个代码对吗?

?我们可以看到,打印出来的结果与我们想要的结果似乎有点出入。那是为什么呢?

原来,这时因为C语言中存在转义字符的原因。下面我们就来看看C语言中有哪些转义字符:

转义字符释义
\?在书写连续多个问号时使用,防止他们被解析成三字母词
\'用于表示字符常量? '
\“用于表示一个字符串内部的双引号
\\用于表示一个反斜杠,防止它被解释为一个转义序列符。
\a警告字符,蜂鸣
\b退格符
\f进纸符
\n换行
\r回车
\t水平制表符
\v垂直制表符
\ddd

ddd表示1~3个八进制数字。? 如? \130 通过ASCLL转义为 X

\xdddd表示2个十六进制数字。? ? 如: \x30? ?0

6.注释

注释的原因:

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

2. 代码中有些代码比较难懂,可以加一下注释文字

C语言风格的注释? ?/*xxxxxxxx*/

缺陷:不能嵌套注释

C++风格的注释 //xxxxxxxx

可以注释一行也可以注释多行

总结

以上就是关于部分C语言基础知识的内容了,希望能够帮到大家,如果有什么写得不好的地方也希望各位指正一二。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 20:56:54  更:2022-10-22 20:59:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 4:03:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码