初始c语言01

重生之日再次捡起c语言,考完研,放松了半个月时间,心里越发焦虑,开始重新迈出前进的步伐,本人是电子信息专业,之前学校里学过c++,但由于基础不牢固,打算重新从头过一遍c语言,大概十几天的时间过一遍,尽量做到每天都打卡上传学习内容,用的开发环境为vs2019.

本日学习大纲

  • c语言的概念
  • 数据类型
  • 变量、常量
  • 字符串+转义字符+注释
  • 选择语句
  • 循环语句
  • 函数
  • 操作符
  • 常见关键字
  • define定义常量和宏
  • 指针
  • 结构体

1、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 等。

2、数据类型

计算机中的基本数据单位

bit比特
byte字节
kb千字节
mb
gb
tb
pb
其中的转换关系为
1 byte=8 bit
1 kb=1024 byte
1 mb=1024 kb
1 gb=1024 mb
1 tb=1024 gb
1 pb=1024 tb

c语言中的数据类型有:

数据类型说明字节应用
char字符型1作于存储单个字符
short int短整型(int 可以省略)2同于存储整数
int整型4同于存储整数
long int 长整型>=4同于存储整数
long long  int长长整型8同于存储整数
float

单精度浮点型

4用于存储小数
double双精度浮点型8用于存储更多小数

下面用程序输出各种类型的大小是多少

#include <stdio.h>
int main()
{
   printf("%d\n",sizeof(char));// %d定义输出为整型数据
   printf("%d\n",sizeof(short)); // \n时转义字符定义为:输出换行(后面会讲)
   printf("%d\n",sizeof(int));  // sizeof()是计算数据大小的函数,记住即可
   printf("%d\n",sizeof(long));
   printf("%d\n",sizeof(long long));
   printf("%d\n",sizeof(float));
   printf("%d\n",sizeof(double));
   return 0;
}

运行结果为(单位为字节):

故可以验证上述所写的字节大小。

3、变量、常量

生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)
有些值是可变的(比如:年龄,体重,薪资)。
在c语言中,用常量的概念来表示不变的量,用变量来表示可以变化的数值

3.1定义变量的方法:

int age =150;  //整型变量
float weight =62.5;  //浮点型变量
char ch = 'w';  //字符型变量

3.2变量的分类

  • 局部变量(在函数里面的变量)
  • 全局变量(在函数外面的变量)

注意:当全局变量与局部变量冲突时(如命名相同)局部优先

下面举个例子

#include <stdio.h>

int a = 200;//全局变量

int main()
{
    int b =100;//局部变量
    //这里用与全局变量相同名称定义局部变量会发现什么问题呢?
    int a =400;//局部变量
    
    printf("a = %d\n",a);//输出变量a结果为?
    return 0;
}
结果为:a=400;
故验证
当全局变量与局部变量冲突时(如命名相同)局部优先

3.3变量的使用

上面已经写到输出函数printf();

现在介绍一下输入函数scanf();

输入函数在使用前需要在原文件第一行放

#define _CRT_SECURE_NO_WARNINGS
下面举个例子(实现两个整数的加法):
#include <stdio.h>
int main()
{
    int num1 = 0;//第一次定义变量令其等于0是初始化,没别的意思
    int num2 =0;
    int sum = 0;
    printf("输入两个操作数:");
    scanf("%d %d",&num1,&num2);//输入两个整数型数据,&num1为指针后面会说
    sum = num1 +num2;
    printf("%d\n",sum);
    return 0;
}

结果为:

3.4变量的作用域和生命周期

作用域:说白了就是变量可以使用的区域;
  • 局部变量:局部变量的作用域是变量所在的局部区域
  • 全局变量:全局变量的作用域是整个工程

特别的 Extern int a //声明来自外部的符号

生命周期:
  • 局部变量:局部变量的生命周期是进入作用域开始,出作用域结束
  • 全局变量:全局变量的生命周期在整个程序都存在

3.5常量

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

  • 字面常量
  • const 修饰的常变量
  • #define 定义的标识符常量
  • 枚举常量

举个例子说明(注意看注释):

#include <stdio.h>

enum Colour
{
    RED,
    GREEN,
    BLUE
};
//上面括号里面的RED,GREEN,BLUE是枚举变量

int main()
{
    3.14;//字面常量
    100;
    
    const float pi = 3.14;//这里的pi是const修饰的常变量(是不可以改变的)
    
    //#define的标识符常量举例
    #define MAX 100
    printf("max = %d\n",MAX); 

    //枚举常量演示
    printf("%d\n",RED);
    printf("%d\n",GREEN);
    printf("%d\n",BLUE);

    return 0;
}

4、字符串+转义字符+注释

4.1字符串

c语言中是没有字符串的数据类型的,所以要存储一串字符串应使用数组

注:字符串的结束标志是一个\0的转义字符,在计算字符串长度的时候\0当作结束标志,不算做字符串内容,故不算长度。

下面用例子说明“\0”的重要性

int main()
{
    char arr1[]="abc";
    char arr2[]={'a','b','c'};
    char arr3[]={'a','b','c','\0'};
    printf("%s\n",arr1);
    printf("%s\n",arr2);
    printf("%s\n",arr3);
    return 0;
}
输出结果为:
注:“abc”中默认有\0,而‘a’,‘b’,‘c’中没有\0,要等到遇到\0才停止
所以用单引号来存储字符串时注意要加上结束标志‘ \0’
计算字符串长度来说明 \0
strlen()是计算字符串长度的函数
 例子:
int main()
{
	char arr1[] = "abcdef";//不知道字符串大小,中括号可以不写
	char arr2[] = { 'a','b','c','d','e','f','\0' };//'\0'是结束标志
	printf("%s\n", arr1);
	printf("%s\n", arr2);
	printf("%d\n", strlen(arr1));
	printf("%d\n", strlen(arr2));
	return 0;
}

运行结果为:

说明\0不算入字符串长度。

4.2 转义字符

转义字符就是一条斜杠加一个字母表示,这种形式就是转义字符,顾名思义,转义字符就是转变字符原来的意思,使其转变为全新的意思

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

注:

\ddd (ddd为八进制的三位数,转换为十进制后对应的ascii码值)ddd的范围为0-127之间

\xdd (dd为十六进制的两位数,转换为十进制后对应的ascii码值)

 格式符 %x
格式符说明
%d带符号十进制整数
%c单个字符
%s字符串
%ffloat类型的数据(单精度浮点数)
%lfdouble类型的数据(双精度浮点数)

例题

//程序输出什么?
#include <stdio.h>
int main()
{
    printf("%d\n", strlen("abcdef"));
    // \62被解析成一个转义字符
    printf("%d\n", strlen("c:\test\628\test.c"));
    return 0;
}

答案为14

4.3 注释

c的注释 /*xxxxxxx*/

  • Cpp的注释 //xxxxxx
  1. 可以梳理思路
  2. 对复杂的代码进行解释
  3. 写代码的时候写注释,是帮助自己,也是帮助别人的
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值