从0基础入门C语言(一)

初识C语言(一)

本章目录

  • 什么是C语言
  • 第一个C语言程序
  • 数据类型
  • 变量、常量
  • 字符串+转义字符+注释
  • 选择语句
  • 循环语句
  • 函数
  • 数组
  • 操作符
  • 常见关键字
  • define 定义常量和宏
  • 指针
  • 结构体

一、什么是C语言

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简单易学的方式编译、处理低级存储器、生产少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多台电脑上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI,作为C语言最初的标准。【1】目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java,Python等面向对象的编程语言有所不同。
其编译器主要有 Clang、GCC、WIN-TC、SUBLIME、MSVC、TURBO C等。

二、第一个C语言程序

编写程序的时候首先要下载编译器,在这里我用的是Visual Studio 2019
链接:https://visualstudio.microsoft.com/zh-hans/vs/
写代码的步骤:
一、新建项目在这里插入图片描述
二、空项目
在这里插入图片描述
三、输入名称、选择存放的位置
在这里插入图片描述
四、写代码

// std-标准standard; i-input o-output
#include <stdio.h>

// int是整形的意思
// main前面的int表示函数调用返回一个整形值
int main()   // 主函数-程序入口-main函数有且仅有一个
{
    
    
	// 库函数-C语言本身提供给我们使用的函数
	// #include <stdio.h> 
	printf("Hello World\n"); // print function -- 打印函数  \n 是换行的意思
	return 0;  // 返回 0,0是整数
}

运行代码:Ctrl + F5 或者 Fn + Ctrl + F5

程序执行的太快,不显示输出内容的解决办法:邮件点击项目名称 —> 属性
点击 链接器 —> 系统 —> 子系统,选择(控制台),然后再运行就可以了。
在这里插入图片描述

三、数据类型

类型

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

%d    打印整型
%c    打印字符型
%f    打印浮点数-打小数
%p    以地址的形式打印
%x    打印16进制数字

代码解释

/* 数据类型 */

//char - 字符类型
#include <stdio.h>
int main()
{
    
    
	char ch = 'A'; // 内存     'A' 字符,赋值给声明的变量 char ch 中
	printf("%c\n", ch);   // %c -- 打印字符格式的数据
	return 0;
}

// int - 整形类型
#include <stdio.h>
int main()
{
    
    
	int age = 20; // 内存
	printf("我今年%d岁\n", age);   // %d -- 打印整形十进制数据
	return 0;
}

// short - 长整形
#include <stdio.h>
int main()
{
    
    
	short num = 10;
	printf("短整形%d\n", num);
	return 0;
}

// long - 长整形
#include <stdio.h>
int main()
{
    
    
	long num = 100;
	printf("长整形%d\n", num);
	return 0;
}

// float - 单精度浮点型
#include <stdio.h>
int main()
{
    
    
	float f = 5.0;
	printf("浮点型%f\n", f);
	return 0;
}

// double - 双精度类型
#include <stdio.h>
int main()
{
    
    
	double f = 13.14;
	printf("双精度浮点型%1f\n", f);
	return 0;
}

四、常量、变量

生活中有些值是不可变得(比如:圆周率,性别(?),身份证号码,血型等等)
有些值是可变的(比如“年龄,体重,薪资”)
不变的值,C语言中用常量的概念来表示,变得值C语言用变量来表示、

定义变量的方法

int age = 150;
float weight = 45.5f;
char ch = 'w';

变量的分类

  • 局部变量
  • 全局变量

局部变量定义在代码块({})之外的变量
全局变量定义在代码块({})内部的变量

int num2 = 20;   // 全局变量
int main()
{
    
    
	int num1 = 10;  //  局部变量
}

局部变量和全局变量的名字建议不要想相同-容易误会,产生BUG。
当局部变量的名字和全局变量的名字相同的时候,局部变量优先。

#include <stdio.h>
int a = 100;
int main()
{
    
    
	int a = 10;
	// 局部变量和全局变量的名字建议不要想相同-容易误会,产生BUG。
	// 当局部变量的名字和全局变量的名字相同的时候,局部变量优先。
	printf("%d\n",a);
	return 0;
}

变量的使用

#include <stdio.h>

int main()
{
    
    
	// 计算两个数的和
	int num1 = 0;
	int num2 = 0;
	// 输入内容--使用输入函数scanf_s
	scanf_s("%d%d",&num1, &num2);   // 在这里要加一个“&”,取地址符号才可以对应前面的两个“%d”
	// 接下来定义sum和,计算两个num 相加
	int sum = 0; // C语言的语法规定,变量要定义在当前代码块的最前面
	sum = num1 + num2;
	printf("sum = %d", sum);
	return 0;
}

1.局部变量的作用域就是变量所在的局部范围
2.全局变量的作用域是整个工程

scanf 警告
scanf 是C语言提供的
scanf_s 不是标准C语言提供的,是VS编译器提供的。
在这里插入图片描述
在这里插入图片描述
解决办法
在源文件的开头加上:#define _CRT_SECURE_NO_WARNINGS 1,就可以正常运行了。
在这里插入图片描述
还有一些C语言提供的库函数,传统意义都是不安全的

scanf
strcpy
strlen
strcat

都是不安全的,只要爆出警告直接使用 #define _CRT_SECURE_NO_WARNINGS 1 忽略掉

可以通过配置在源文件中默认添加代码,这样的话每次创建文件的时候,代码文件的第一行都会默认有 #define _CRT_SECURE_NO_WARNINGS 1
这是配置路径,下载一个 Notepad++ 进行编辑,这样可以直接越过管理员权限。
Notepad++下载路径:https://notepad-plus.en.softonic.com/
在这里插入图片描述
在这里插入图片描述
输入之后保存退出就可以了~~~

生命周期

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

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

常量

常量就是生活不变的量就是常量。
C语言中常量和变量的定义的方式有所差异。

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

  • 字面常量 -------> 字面常量就是我们直接写出来的值。

    int main()
    {
          
          
    	int num = 4;
    	3;  // 字面常量
    	100;
    	3.14;
    	
    	return 0;
    }
    
  • const修饰的常变量 -----------> 常属性,加上const的时候,变量是不可变的

    int main()
    {
          
          
    	int arr[10] = {
          
          0};  // 创建一个数组,10是我定义的字面的常量;
    	
    	int n = 10;    // 定义一个变量n,然后将m传入到arr中,最后运行的结果是报错的
    	int arr[n] = {
          
          0};  // 因为arr中只能是常量
    	// 然后我们其实就可以更改一下n的属性,使用const修饰一下
    	const int n = 10;
    	int arr[n] = {
          
          0};   //  这样子最后运行就不会报错了
    }
    
  • #define 定义的标识符常量

    # define 定义标识符常量
    
    # define MAX 10
    int main(0
    {
          
          
    	int arr[MAX] = {
          
          0};  // 创建一个数字,初始位数组为0
    	printf("%d\n",MAX)   // 打印MAX的值,结果为0,说明MAX是常量
    	return 0;
    }
    
  • 枚举常量
    枚举的意思就是:一 一列举

    性别:男,女,保密
    颜色:红色,黄色,蓝色
    星期:星期一,星期二,星期三,星期四,星期五
    “这些就是一 一列举”

    枚举的关键字:enum

    // 定义一个枚举常量 Sex,性别
    enum Sex
    {
          
          
    	MALE;
    	FEMALE;
    	SECRET;
    	// 定义三个常量,分别对应的就是上面的 男,女,保密
    };  // 后面是个冒号是必不可少的
    // MALE,FEMALE,SECRET - 枚举常量
    int main()
    {
          
          
    	// enum Sex s = MALE;   给s赋值MALE
    	printf("%d\n",MALE);  // 0
    	printf("%d\n",FEMALE); // 1
    	printf("%d\n",SECRET); // 2
    	// 打印这三个常量,分别对应的值是0,1,2,枚举常量是有值的,是不可被改变的
    }
    

猜你喜欢

转载自blog.csdn.net/weixin_44675308/article/details/118542147