自学-C语言-基础-注释、变量、运算符、判断、循环

本文介绍了C语言的起源、特点,如结构化、易学高效等,并详细讲解了创建运行环境、变量和常量、C语言注释、不同类型的运算符(算术、关系、逻辑和赋值)、以及基本的控制结构如if、switch、while、for和dowhile循环。
摘要由CSDN通过智能技术生成

运行环境

Dev C++
Dev C++官网

认识C语言

C 语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。
C 语言是一种广泛使用的计算机语言,它与 Java 编程语言一样普及,二者在现代软件程序员之间都得到广泛使用。
C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的。C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现。

在 1978 年,布莱恩·柯林汉(Brian Kernighan)和丹尼斯·里奇(Dennis Ritchie)制作了 C 的第一个公开可用的描述,现在被称为 K&R 标准。

UNIX 操作系统,C编译器,和几乎所有的 UNIX 应用程序都是用 C 语言编写的。由于各种原因,C 语言现在已经成为一种广泛使用的专业语言。

~易于学习。
~结构化语言。
~它产生高效率的程序。
~它可以处理底层的活动。
~它可以在多种计算机平台上编译。

创建运行环境

第一步
打开Dev c++后第一步

第二步
在这里插入图片描述

敲入所有语言都会敲的第一句话

Hello World

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
	printf("Hello, World! \n");
	return 0;
}

运行结果
在这里插入图片描述
新人第一次经常犯的错,就是每一代码后要敲上;分号

C语言注释

两个斜杠是单行注释
两个斜杠中间加两个星号

C语言使用变量是需要声明的

类型说明
char通常是一个字节(八位), 这是一个整数类型。
int整型,4 个字节,取值范围 -2147483648 到 2147483647。
float单精度浮点值。单精度是这样的格式,1位符号,8位指数,23位小数。
double双精度浮点值。双精度是1位符号,11位指数,52位小数。
void表示类型的缺失。

有些关键字是不能声明成变量的如下

关键字说明
auto声明自动变量
break跳出当前循环
case开关语句分支
char声明字符型变量或函数返回值类型
const定义常量,如果一个变量被 const 修饰,那么它的值就不能再被改变
continue结束当前循环,开始下一轮循环
default开关语句中的"其它"分支
do循环语句的循环体
double声明双精度浮点型变量或函数返回值类型
else条件语句否定分支(与 if 连用)
enum声明枚举类型
extern声明变量或函数是在其它文件或本文件的其他位置定义
float声明浮点型变量或函数返回值类型
for一种循环语句
goto无条件跳转语句
if条件语句
int声明整型变量或函数
long声明长整型变量或函数返回值类型
register声明寄存器变量
return子程序返回语句(可以带参数,也可不带参数)
short声明短整型变量或函数
signed声明有符号类型变量或函数
sizeof计算数据类型或变量长度(即所占字节数)
static声明静态变量
struct声明结构体类型
switch用于开关语句
typedef用以给数据类型取别名
unsigned声明无符号类型变量或函数
union声明共用体类型
void声明函数无返回值或无参数,声明无类型指针
volatile说明变量在程序执行中可被隐含地改变
while循环语句的循环条件

常量

常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。
常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量。
常量就像是常规的变量,只不过常量的值在定义后不能进行修改。
常量可以直接在代码中使用,也可以通过定义常量来使用。
在这里插入图片描述
看不懂没关系,慢慢学慢慢总结

85         /* 十进制 */
0213       /* 八进制 */
0x4b       /* 十六进制 */
30         /* 整数 */
30u        /* 无符号整数 */
30l        /* 长整数 */
30ul       /* 无符号长整数 */

注意是零不是O

转义输出
\\ 字符
’ 字符
"" 字符
?? 字符
\a警报铃声
\b退格键
\f换页符
\n换行符
\r回车
\t水平制表符
\v垂直制表符
\ooo一到三位的八进制数
\xhh . . .一个或多个数字的十六进制数

在C语言里不转义是输出不出来本来的内容的。

#include <stdio.h>
 
int main()
{
   const int  LENGTH = 10;
   const int  WIDTH  = 5;
   const char NEWLINE = '\n';
   int area;  
   area = LENGTH * WIDTH;
   printf("value of area : %d", area);
   printf("%c", NEWLINE);
   return 0;
}

运行结果
在这里插入图片描述

存储类问题

所知有四个
auto
register
static
extern

auto的作用是——auto int x;声明这个变量只能在函数内使用

register的作用是——register int miles;好像能读取更快,如果这个变量经常调用,就用这个存储类。

static的作用是——static int x;作用应该是,在文件声明周期都可以存在,不同的函数在同一个文件中,就可以调用static声明的存储类。

extern 的作用是——用来在另一个文件中声明一个全局变量或函数。extern 修饰符通常用于当有两个或多个文件共享相同的全局变量或函数的时候。

运算符

算术运算符

假设变量 A 的值为 10,变量 B 的值为 20

运算符描述实例
+把两个操作数相加A + B 将得到 30
-从第一个操作数中减去第二个操作数A - B 将得到 -10
*把两个操作数相乘A * B 将得到 200
/分子除以分母B / A 将得到 2
%取模运算符,整除后的余数B % A 将得到 0
++自增运算符,整数值增加 1A++ 将得到 11
自减运算符,整数值减少 1A-- 将得到 9

关系运算符

运算符描述实例
==检查两个操作数的值是否相等,如果相等则条件为真。(A == B) 为假。
!=检查两个操作数的值是否相等,如果不相等则条件为真。(A != B) 为真。
>检查左操作数的值是否大于右操作数的值,如果是则条件为真。(A > B) 为假。
<检查左操作数的值是否小于右操作数的值,如果是则条件为真。(A < B) 为真。
>=检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。(A >= B) 为假。
<=检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。(A <= B) 为真。

逻辑运算符

运算符描述实例
&&称为逻辑与运算符。如果两个操作数都非零,则条件为真。(A && B) 为假。
ll称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。(A ll B) 为真。
!称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。!(A && B) 为真。

特殊记忆,&像一个鱼,同音与

赋值运算符

运算符描述实例
=简单的赋值运算符,把右边操作数的值赋给左边操作数C = A + B 将把 A + B 的值赋给 C
+=加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数C += A 相当于 C = C + A
-=减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数C -= A 相当于 C = C - A
*=乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数C *= A 相当于 C = C * A
/=除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数C /= A 相当于 C = C / A
%=求模且赋值运算符,求两个操作数的模赋值给左边操作数C %= A 相当于 C = C % A
<<=左移且赋值运算符C <<= 2 等同于 C = C << 2
>>=右移且赋值运算符C >>= 2 等同于 C = C >> 2
&=按位与且赋值运算符C &= 2 等同于 C = C & 2
^=按位异或且赋值运算符C ^= 2 等同于 C = C ^ 2
l=按位或且赋值运算符C l= 2 等同于 C = C l2

在C语言中一个等号是赋值,两个等号是判断

运算符描述实例
sizeof()返回变量的大小。sizeof(a) 将返回 4,其中 a 是整数。
&返回变量的地址。&a; 将给出变量的实际地址。
*指向一个变量。*a; 将指向一个变量。
? :条件表达式如果条件为真 ? 则值为 X : 否则值为 Y

最后一个三元运算符还是挺好用的

判断(也叫分支语句)

语句描述
if 语句 一个 if 语句由一个布尔表达式后跟一个或多个语句组成。
if…else 语句一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。
嵌套 if 语句您可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。
switch 语句一个 switch 语句允许测试一个变量等于多个值时的情况。
嵌套 switch 语句您可以在一个 switch 语句内使用另一个 switch 语句。

if语句

if(表达式1)
语句1;
else if(表达式2)
语句2;

else if(表达式n-1)
语句n-1;
else
语句n;

#include <stdio.h>
int main ()
{
	int x=10;
	if(x<=20)
	{
		printf("x比20小");
	}
	printf("x=%d",x);
	return 0;
}

运行结果:
在这里插入图片描述

switch语句

switch语句可以处理多分支选择问题,根据其中break语句的使用方法(break语句为强制结束循环),一般分两种情况。
1、在switch语句的每个语句段中都使用break语句,也是switch语句的主要使用方法,一般形式为:
switch(表达式){
case 常量表达式1:语句段1; break;
case 常量表达式2:语句段2: break;

case 常量表达式n:语句段n; break;
default: 语句段n+1; break;
}

#include<stdio.h>
int main(){
    double value1, value2;
    char op;
    printf("请输入一个表达式:");
    scanf("%lf%c%lf", &value1, &op, &value2);//输入整数小数加减乘除格式,例:?+?
    switch(op){
        case '+':
            printf("%.2f + %.2f = %.2f\n", value1, value2, value1+value2);
            break;
        case '-':
            printf("%.2f - %.2f = %.2f\n", value1, value2, value1-value2);
            break;
        case '*':
            printf("%.2f * %.2f = %.2f\n", value1, value2, value1*value2);
            break;
        case '/':
            printf("%.2f / %.2f = %.2f\n", value1, value2, value1/value2);
            break;
        default:
            printf("请输入正确格式数据!\n");
            break;
    }
    return 0;
}

在这里插入图片描述

注意:在写条件的时候,一定注意是两个等号,一个等号是赋值

循环

循环类型

循环类型描述
while 循环当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。
for 循环多次执行一个语句序列,简化管理循环变量的代码。
do…while循环 除了它是在循环主体结尾测试条件外,其他与 while 语句类似。
嵌套循环您可以在 while、for 或 do…while 循环内使用一个或多个循环。

循环控制语句

控制语句描述
break 语句终止循环或 switch 语句,程序流将继续执行紧接着循环或 switch 的下一条语句。
continue 语句告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。
goto 语句将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。

while循环

while的基本用法
在这里插入图片描述

for循环

for循环基本用法:

#include <stdio.h>
int main ()
{
	int y;
   for( y=0;y<10 ;y++ )
   {
	  printf("%d\n",y);
   }
   return 0;
}

运行结果:
在这里插入图片描述
因为for语句的三个条件不是必须的,所以是可以实现无限循环——

#include <stdio.h>
int main ()
{
   for( ; ; )
   {
      int x;
      x++;
	  printf("%d该循环会永远执行下去!\n",x);
   }
   return 0;
}

运行结果:
在这里插入图片描述

do while循环

do while的基本用法

#include <stdio.h>
int main (void)
{ 
	int i = 1;	
	do			
	{
		printf("数值为:%d\n",i);
		i++;
	}
	while(i<=10);   //先执行语句,在判断结果。
	return 0;
}

运行结果:
在这里插入图片描述
while和do while的区别——
一个是判断通过进入循环,一个是判断通过离开循环
在这里插入图片描述
学到这C语言最基础的部分就结束了!

在这里插入图片描述
在这里插入图片描述

  • 59
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 学习51单片机和C语言编程,可以帮助我们更深入地理解嵌入式系统的原理和工作方式。对于初学者来说,掌握一份适合自己的学习资料非常重要。 要学习51单片机-C语言版,可以阅读《手把手教你学51单片机-C语言版pdf》这本电子书,这本书内容丰富,讲解详细,配合实例编程,非常适合初学者自学。以下是学习本书的几个关键点: 第一,掌握基本的硬件知识,包括单片机的结构和特性,尤其是各种寄存器的作用和配置方法。 第二,了解C语言编程基础,尤其是语法、数据类型、运算符、控制结构、函数等,这是编写单片机程序的基础。 第三,通过实例编程加强对知识的理解和运用能力。例如,可以尝试写一些简单的IO控制、定时器中断、串口通讯等程序。 第四,可以搭配相应的开发板和开发环境进行实践学习。例如,可以使用STC89C51开发板和Keil或SDCC开发环境。 总之,《手把手教你学51单片机-C语言版pdf》这本电子书是一个不错的学习资料,但也需要具备一定的基础知识和耐心,可以结合其他资料和实践不断提高自己的能力。 ### 回答2: 学习51单片机-c语言版, 需要基础的C语言编程知识。在学习前,先要熟悉C语言的数据类型、循环判断及函数等语法结构,并掌握C语言的编写方法。 在学习51单片机-c语言版之前,需要准备好学习环境,如下载并安装Keil软件, 安装并关联好相应的单片机模拟器。Keil软件中有类似于记事本的编辑窗口用来编写C语言代码, 以及编译,调试和下载程序到单片机等功能。 在学习时,可以选择一些简单的例程开始学习,逐步理解其代码逻辑,了解基本的寄存器操作和中断等知识。可以从LED灯等简单的实验开始,逐渐增加难度和功能的复杂度。 同时,可以参考一些权威的学习资料如《单片机原理与应用》、《51单片机学习与应用》等相关书籍,或结合网络资源进行学习。在学习过程中,需要勤加练习,多编写代码进行实践,同时多与他人交流学习体会和技术问题。通过坚持不断的学习和练习,便可以逐步掌握51单片机-c语言版编程技巧,提高自己的单片机应用开发能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值