C语音n番战--初识(一)

C语音n番战--初识(一),第1张

嵌入式之路,贵在日常点滴

                                                                ---阿杰在线送代码

目录

什么是程序?

什么是计算机语言?

一、C程序的基础框架

二、变量与常量

2.1 变量

2.1.1 变量使用

2.1.2 变量命名规范(标识符)

2.2 常量 

三、数据类型

四、关键字

五、关于输入输出

printf/打印

scanf/扫描键盘 

getchar、 putchar、puts、gets


什么是程序?

沃思(Nikiklaus Wirth)提出一个公式:算法+数据结构=程序

数据结构:对数据的描述。

程序中用到哪些数据,是什么类型:整型、浮点型、字符型、复合型(结构体、数组)。

用哪种方式组织数据(数据结构):链表、树、图

算法:对 *** 作的描述,要求计算机的 *** 作步骤对数据产生作用。

对于一名嵌入式工程师,大部分只涉及到简单数据型(如1到100的和)、逻辑型(如逻辑条件分支判断等)。

进程/任务: 跑起来的程序叫做进程,动态概念

什么是计算机语言?

机器语言-》汇编语言-》高级语言

机器语言是计算机能直接运行的语言,是二进制语言,属于低级语言;
汇编语言是面向机器的低级语言,不能被机器直接识别,需要编译;
高级语言是从人类的逻辑思维角度出发的计算机语言,不能被机器直接识别,需要编译。 

机器语言
机器语言是用二进制代码表示的语言,是计算机唯一可以直接识别和执行的语言,它具有计算机可以直接执行、简洁、运算速度快等优点,但它的直观性差,非常容易出错,程序的检查和调试都比较困难,此外对机器的依赖型也很强。
汇编语言
汇编语言是面向机器的程序设计语言,它是为了解决机器语言难以理解和记忆的缺点,用易于理解和记忆的名称和符号表示机器指令中的 *** 作码,这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序把汇编语言翻译成机器语言的过程称为汇编。
高级语言
高级语言高级语言为用户提供了一种既接近与自然语言,又可以使用数学表达式,还相对独立于机器的工作方式。与汇编语言一样,机器也不能直接执行用高级语言编写的程序。高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如目前流行的c,c++,C#,python,java等等。

一、C程序的基础框架

涉及到CMD指令请到此篇文章查看cmd常用指令 

二、变量与常量 2.1 变量

变量:在程序运行过程中,其值可以改变。 

2.1.1 变量使用

变量先声明(定义)后使用

(注:声明必须含有要素a,b)

int a = 3;
int b ;
b=a+1;

变量三要素:

  1. 变量类型
  2. 变量名
  3. 变量值
类型 变量名 变量值
int   a   =   1;

变量四规则:

  1. 变量类型
  2. 变量名
  3. 变量值
  4. 存储单元

(一个内存空间就像一个蜂巢快递柜一样,里面的快件会变,就像内存的数据会变一样,所以叫做变量) 

2.1.2 变量命名规范(标识符)

什么是标识符

  • 从字面上理解,就是用来标识某些东西的符号,标识的目的就是为了将这些东西区分开来
  • 其实标识符的作用就跟人类的名字差不多,为了区分每个人,就在每个人出生的时候起了个名字
  • C语言是由函数构成的,一个C程序中可能会有多个函数,为了区分这些函数,就给每一个函数都起了个名称, 这个名称就是标识符
  • 综上所述: 程序员在程序中给函数、变量等起名字就是标识符

标识符命名规则 

  • 以字母,数字,下划线组成,第一个字符不能是数字。
  • 不能与关键字一样。
  • 不能包含空格,标点符号。
  • 标识符严格区分大小写, test和Test是两个不同的标识符

标识符命名规范

  • 见名知意,能够提高代码的可读性
  • 驼峰命名,能够提高代码的可读性
    • 驼峰命名法就是当变量名或函数名是由多个单词连接在一起,构成标识符时,第一个单词以小写字母开始;第二个单词的首字母大写.
    • 例如: myFirstName、myLastName这样的变量名称看上去就像驼峰一样此起彼伏

2.2 常量 

常量:在程序运行过程中,其值不能改变。

符号常量

#define    PI   3.14 

转义字符

三、数据类型

C语言中有4大类数据类型:基本类型、构造类型、指针类型、空类型

强制转换

四、关键字

什么是关键字?

  • 关键字,也叫作保留字。是指一些被C语言赋予了特殊含义的单词
  • 关键字特征:
    • 全部都是小写
    • 在开发工具中会显示特殊颜色
  • 关键字注意点:
    • 因为关键字在C语言中有特殊的含义, 所以不能用作变量名、函数名等
  • C语言中一共有32个关键字(在编译器里都是有特殊颜色的。)

1

2

3

4

5

6

7

8

char

short

int

long

float

double

if

else

return

do

while

for

switch

case

break

continue

default

goto

sizeof

auto

register

static

extern

unsigned

signed

typedef

struct

enum

union

void

const

volatile

五、关于输入输出 printf/打印

#include 


int main()
{
	int a_data = 3; //c c++ java 一个分号代表一个语句结束
	float f_data = 2.3;
	char c_data = '#';
	
	int data = 10;
	int chushu = 3;
	float result;
	
	result = (float)data/chushu; //强制转换,把整数给小数
	
	//占位符,是以%开头,注释是程序员看到,编译预处理的时候,会被清除
	printf("a=%d\n",a_data);   
	a_data = 100;  //0000 0000 0000 0000 0000 0000   0110 0100
	
	printf("修改后:a=%d\n",a_data);
	printf("16进制输出a=0x%x\n",a_data);
	printf("有一个小数f=%f\n",f_data);
	printf("有一个字符c = %c\n",c_data);
	printf("a_data的地址是%p\n",&a_data);
	
	printf("result = %f\n",result);
	printf("result2 = %f\n",(float)data/chushu);
	
	return 0;
}

运行结果:

a=3
修改后:a=100
16进制输出a=0x64
有一个小数f=2.300000
有一个字符c = #
a_data的地址是000000000061FE08
result = 3.333333
result2 = 3.333333 

scanf/扫描键盘 

如果有多少变量需要输入,最好给分开,有3个变量,就3个scanf,不容易出错。

地址符号& 

scanf格式中有什么字符,输入的时候也要输入(原样输入)

注意字符 

分析

getchar、 putchar、puts、gets
  • getchar: 从键盘获得一个字符
  • putchar: 向屏幕输出一个字符
  • puts:向标准输出设备屏幕输出字符串并换行
  • gets:从标准输入中读取一行文本,并存储于作为参数传递给它的数组中。一行文本由一串字符组成,以一个换行符('\n')结尾。在返回之前,gets函数丢弃换行符('\n'),取而代之的是以'\0'结尾。(涉及到数组,后面)

    返回值:读取成功,函数返回与buffer相同的指针。读入过程中遇到EOF或发生错误,函数返回NULL指针。当返回值为NULL指针时可以用feof()和ferror()来判断函数是遇到EOF还是发生错误。 

#include 

/*
	puts跟printf的区别
	1. 自动加入换行符
	2. printf支持多种花样输出,而puts就是输出字符串
*/

int main()
{
	char c;
	
	puts("请输入一个字符");
	c = getchar();
	puts("你输入的字符是");
	putchar(c);
	return 0;
}

 运行结果:

请输入一个字符
a
你输入的字符是
a

#include 

int main()
{
	char a;
	char b;
	
	puts("请输入一个大写字母:");
	scanf("%c",&a);
	b = a + 32;
	printf("你输入的字母对应的小写字母是:%c\n",a+32);
	printf("你输入的字母对应的小写字母是:%c\n",b);
	
	printf("测试使用getchar 和 putchar");	
	//getchar();//吸收回车符
	putchar(getchar()+32);
	
	
	return 0;
}

运行结果:请输入一个大写字母:
A
你输入的字母对应的小写字母是:a
你输入的字母对应的小写字母是:a
测试使用getchar 和 putchar*

思考:为什么后面的getchar 和 putchar函数不能正常输出呢。

我发现了,在上面的scanf获得字符时候,多了个回车符,需要给吸收掉

#include 

int main()
{
	char a;
	char b;
	
	puts("请输入一个大写字母:");
	scanf("%c",&a);
	b = a + 32;
	printf("你输入的字母对应的小写字母是:%c\n",a+32);
	printf("你输入的字母对应的小写字母是:%c\n",b);
	
	printf("printf("测试使用getchar 和 putchar:\n");	");	
	getchar();
    //吸收回车符,来源于第9行。当你分多次连续scanf获得字符的时候,要注意回车符
	putchar(getchar()+32);
	
	
	return 0;
}

运行结果:

请输入一个大写字母:
A
你输入的字母对应的小写字母是:a
你输入的字母对应的小写字母是:a
测试使用getchar 和 putchar:
B
b

#include "stdio.h"

int main()
{
	char c1 = 'C';
	char c2 = 'h';
	char c3 = 'i';
	char c4 = 'n';
	char c5 = 'a';
	
	printf("经过运算后,得到的c1 = %c,c2 = %c,c3 = %c,c4 = %c,c5 = %c\n",c1+4,c2+4,c3+4,c4+4,c5+4);
	
	putchar(c1+4);
	putchar(c2+4);
	putchar(c3+4);
	putchar(c4+4);
	putchar(c5+4);

	return 0;
}

运行结果:

 经过运算后,得到的c1 = G,c2 = l,c3 = m,c4 = r,c5 = e
Glmre

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/866786.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-12
下一篇 2022-05-12

发表评论

登录后才能评论

评论列表(0条)

保存