C语言学习第一节——初识c语言

这篇文章回向大家简单的介绍一下c语言的基础只是,让大家对c语言有一个大概的认识;
以下是本节的介绍顺序,看不懂没关系,后面会再做详解(我所有的代码均会在vs2017上运行,如果可以请下载一个)
1:数据类型
2:变量、常量
3:字符串+转义字符+注释
4:选择语句
5:循环语句
6:函数
7:数组
8:操作符
9:常见关键字
10:define 定义常量和宏
11:指针
12:结构体

接下来让我们进入正文;
什么是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("hello world");
	return 0;
}

解释:
main 函数是程序的入口,一个工程中main函数有且只有一个

一:数据类型

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

上面是c语言中的类型,存在这么多类型的目的是为了更丰富的表达生活中的各种值;

二:变量,常量

生活中有很多东西是一成不变的,比如性别,血型等;也有许多东西是多变的。比如年龄,体重
那么我们就要将这两种值分别表示,于是就有了变量和常量
如下,是定义变量的方法

int age = 18;  
float weight = 55.5;
char name = "w";

变量又分为全局变量和局部变量
eg:(当局部变量和全局变量重名时,局部变量优先)

#include <stdio.h>
int global = 2019;//全局变量
int main()
{
    int local = 2018;//局部变量
    //下面定义的global会不会有问题?
    int global = 2020;//局部变量
    printf("global = %d\n", global);
    return 0;
}

变量的使用

#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);//输出语句
	system("pause");
	return 0;
}

运行结果:
在这里插入图片描述
变量的作用域和生命周期
作用域
局部变量:所在的局部范围
全局变量:整个工程
生命周期
局部变量:从进入作用域开始到,出作用域结束
全局变量:整个程序的生命周期

如下是常量的定义
c语言中的常量分为以下几种:
1:字面常量
2:const修饰的常变量
3:#define 定义的标识符常量
4:枚举常量

eg:

#include <stdio.h>
enum Sex
{
 MALE,
 FEMALE,
 SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
    3.14;//字面常量
    1000;//字面常量
    const float pai = 3.14f;   //const 修饰的常量
    pai = 5.14;//ok?
 #define MAX 100            //#define的标识符常量    
    return 0;
}

三:字符串+转义字符+注释

字符串

“hello world\n”

上面这种由双引号引起来的一串字符就是字符串;它的结束标志是\0的转义字符,不能算作字符串内容。

#include <stdio.h>
//下面代码,打印结果是什么?为什么?(突出'\0'的重要性)
int main()
{
    char arr1[] = "bit";
    char arr2[] = {'b', 'i', 't'};
    char arr3[] = {'b', 'i', 't', '\0'};
    printf("%s\n", arr1);
    printf("%s\n", arr2);
    printf("%s\n", arr3);
    return 0;
}

转义字符

转义字符,就是转变意思的字符;请看下表

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

eg:在屏幕上打印一个单引号

int main()
{
	printf("%c\n",' \'');
	return 0;
}

注释
代码中有不需要的代码可以直接删除,也可以注释掉
代码中有些代码比较难懂,可以加一下注释文字

注释有两种风格:
C语言风格的注释 /xxxxxx/
缺陷:不能嵌套注释
C++风格的注释 //xxxxxxxx
可以注释一行也可以注释多行

四:选择语句

如果你好好学习就能考名校,如果你玩游戏九只能考家里蹲大学了;这就是选择;
在这里插入图片描述
eg:

#include<stdio.h>
int main()
{
	int k = 0;
	printf("请输入你的选择");
	scanf("%d", &k);
	if (k == 1)
	{
		printf("985,211");
	}
	else
	{
		printf("家里蹲");
	}
	return 0;
}

五:循环语句

请看下图,那么怎样可以用代码实现呢?
在这里插入图片描述
eg:

#include <stdio.h>
int main()
{
	int world = 0;
	while (world == 5000)
	{
		world++;
	}
	printf("过四级");
	return 0;
}

六:函数

简化代码,代码复用
eg:

#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;
}
上述代码,写成函数如下:
#include <stdio.h>
int Add(int x, int y)
{
   int z = x+y;
   return z;
}
int main()
{
    int num1 = 0;
   int num2 = 0;
    int sum = 0;
    printf("输入两个操作数:>");
    scanf("%d %d", &num1, &num2);
    sum = Add(x, y);
    printf("sum = %d\n", sum);
    return 0;
}

七:数组

如果要你存储1-10的数字,你要怎样存?
数组,就是存储相同类型元素的集合的;

eg:

int arr[10] = {1,2,3,4,5,6,7,8,9,10};

数组的使用:

#include <stdio.h>
int main()
{
 int i = 0;
 int arr[10] = {1,2,3,4,5,6,7,8,9,10};
 for(i=0; i<10; i++)
 {
       printf("%d ", arr[i]);
 }
 printf("\n");
    return 0;
}

八:操作符

算术操作符:+ - * / %
移位操作符: >> <<
位操作符: & ^ |
赋值操作符: = += -= *= /= &= |= >>= <<=
单目操作符:!逻辑反
- 负值
+正值
& 取地址
sizeof 操作数的类型长度
~ 对一个数的二进制按位取反
– 前置后置–
++ 前置后置++
* 间接访问操作符(解引用)
(类型)强制类型转换
关系操作符:> >= < <= != ==
逻辑操作符:&& ||
条件操作符 exp1 ? exp2 :exp3
逗号表达式 exp1,exp2,exp3…expN
下表引用,函数调用和结构成员:[] () . ->

九:常用关键字

auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
看看你认识几个呢?不会的记得搜索哦

十:#define定义的常量和宏

//define定义标识符常量
#define MAX 1000
//define定义宏
#define ADD(x, y) ((x)+(y))
#include <stdio.h>
int main()
{
    int sum = ADD(2, 3);
    printf("sum = %d\n", sum);
    sum = 10*ADD(2, 3);
    printf("sum = %d\n", sum);
    return 0;
}       

十一:指针

在介绍指针时,就先向大家介绍一下程序在内存中是怎样运行的;
内存是电脑上特别重要的存储器,计算机中所有程序的运行都是在内存中进行的 。
所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。
为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。

在这里插入图片描述
每一个变量都有地址

eg:int main()
{
 int num = 10;
 &num;//取出num的地址
 printf("%p\n", &num);//打印地址,%p--以地址的形式打印
 return 0;
}

那么地址又是怎样存储的呢?这就有了指针变量
eg:(定义一个指针变量)

int num = 10;
int *p;
p = &num;

eg:(指针的使用实例)

#include<stdio.h>
int main()
{
   int a = 0;
   int *p = &a;
   *p = 20;
   return 0;
}

十二结构体:

结构体是C语言中特别重要的知识点,结构体使得C语言有能力描述复杂类型。
比如描述学生,学生包含: 名字+年龄+性别+学号 这几项信息。
这里只能使用结构体来描述了
eg:

struct Stu
{
    char name[20];//名字
    int age;            //年龄
    char sex[5];     //性别
    char id[15];      //学号
};

结构体的初始化
以上面例子例;
struct Stu s = {“张三”,20,“男”,“201804506”};

以上就是我们本节的全部内容啦!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值