【小白必看】初始C语言(上)


一、C语言是什么?

提问:我们平常生活中会接触到很多语言,我们用英语和外国人交流,用汉语和中国人交流,用喵喵语和小猫交流,用汪汪语和小狗交流.......C语言从名字上来看也是一门语言,那问题来了,C语言是什么语言?我们又用C语言跟谁交流?

C语言是一门面向过程的计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。其编译器主要有Clang、GCC、WIN-TC、 SUBLIME、 MSVC、 Turbo C等。

二、一个简单的C语言程序

代码如下(示例):

#include <stdio.h>
int main()
{
    printf("hello world\n");
    return 0;
}

#include <stdio.h>:这个是放在代码开始时的一个头文件(用.h表示),include是包含的意思,stdio是指 “standard input & output"(标准输入输出)。所以,源代码中如用到标准输入输出函数时,就要包含这个头文件!例如c语言中的 printf(“%d”,i)输出; scanf(“%d”,&i)输入;等函数。
int main(){}:int表示它返回值是int型(整型),main表示它的名字是mian (函数名),() 表示它是一个函数,{}是代码块。main是主要的意思,所以这也是一个主函数,是程序执行的入口,即程序执行时从代码块中的第一行代码开始执行。
printf(“”):在讲头文件的时候已经提到过,这是一个标准输出函数。冒号之间的内容就是要输出的内容。
return 0:在代码成功运行后就会返回0,返回非0则表示代码运行错误。
执行结果:
在这里插入图片描述

三、数据类型

数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。

提问:为什么要有这个系统?数据什么类型不是一眼就可以看出来的么?

我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不清1和‘汉’的区别的,因此,在每个编程语言里都会有一个叫数据类型的东东,其实就是对常用的各种数据类型进行了明确的划分,你想让计算机进行数值运算,你就传数字给它,你想让他处理文字,就传字符串类型给他。

C语言中常见的数据类型有:

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

四、变量

在程序执行过程中,其值不发生改变的量称为常量(比如:圆周率,性别,身份证号码,血型等等),其值可变的量称为变量(比如:年龄,体重,薪资)。

4.1 定义变量的方法

在这里插入图片描述

4.2 变量的命名规则

  • 只能由字母(包括大写和小写)、数字和下划线( _ )组成。
  • 不能以数字开头。
  • 长度不能超过63个字符。
  • 变量名中区分大小写。
  • 变量名不能使用关键字。

4.3 变量的分类

  • 局部变量
  • 定义在一个函数内部,在函数之外是不可访问的。
  • 函数执行结束后,函数内部的局部变量,会被系统回收
  • 不同的函数,可以定义相同名字的局部变量,但是是互不影响的,之间没有什么关系。
  • 全局变量

定义在所有函数之外,并且在其作用域内的所有函数都可以访问。

局部变量和全局变量的区别

  1. 作用域不同:全局变量的作用域为整个程序,而局部变量的作用域为当前函数或循环等
  2. 内存存储方式不同:全局变量存储在全局数据区中,局部变量存储在栈区
  3. 生命期不同:全局变量的生命期和主程序一样,随程序的销毁而销毁,局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了
  4. 使用方式不同:全局变量在声明后程序的各个部分都可以用到,但是局部变量只能在局部使用。函数内部会优先使用局部变量再使用全局变量
    需要注意一点的是,局部变量不能赋值为同名全局变量的值。

五、常量

常量分为以下几种:

  • 字面常量
3.14//字面常量
19//字面常量
22345//字面常量
  • const修饰的常变量
int a = 10;  
const int b = 20; 
a = 30; //变量a可以被修改
b = 40;  //此时编译器会报错"表达式必须是可修改的左值",即用const修饰的常变量不可再被修改
int arr[b]; //此时编译器会报错"应输入常量表达式",即const修饰的常变量本质还是一个变量
  • define定义的标识符常量
#define MAX 100; //即标识符MAX的值为100
int main(){
	  printf("max = %d\n", MAX);  //可以直接输出MAX的值
}
  • 枚举常量
enum SEX{ //SEX可以取以下三种常量值
		MALE
		FAMALE
		SECRET
}
int main(){
    printf("%d\n", MALE); //输出0
    printf("%d\n", FEMALE);  //输出1
	printf("%d\n", SECRET);   //输出2
   //注:枚举常量的默认是从0开始,依次向下递增1的
   return 0;
}

六、字符串

"Hello,World!/n"

这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。

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

举例:
#include <stdio.h>
int main()
{
    char arr1[] = "world";
    char arr2[] = {'w', 'o', 'r','l','d'};
    char arr3[] = {'w', 'o', 'r','l','d' ,'\0'};
    printf("%d\n", strlen(arr1));  //5
    printf("%d\n", strlen(arr2));  //随机值
    printf("%d\n", strlen(arr3));  //5
    //计算字符串长度时,编译器检索到\0就停止,arr1本身就是字符串,末尾隐藏了\0,因此长度为5;arr2是一串字符,编译器读完字符没有遇到\0,则将一直往下读,直到读到\0停止,因此长度为随机值;arr3虽然也是一串字符,但是末尾主动添加了\0,所以长度也为5
    return 0;
}

七、转义字符

转义字符(Escape character),所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加""来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。

常见转义字符:

转义字符意义ASCII码值(十进制)
\a响铃(BEL)007
\b退格(BS) ,将当前位置移到前一列008
\f换页(FF),将当前位置移到下页开头012
\n换行(LF) ,将当前位置移到下一行开头010
\r回车(CR) ,将当前位置移到本行开头013
\t水平制表(HT) (跳到下一个TAB位置)009
\v垂直制表(VT)011
\代表一个反斜线字符’‘’092
代表一个单引号(撇号)字符039
"代表一个双引号字符034
?代表一个问号063
\0空字符(NUL)000
\ddd1到3位八进制数所代表的任意字符三位八进制
\xhh十六进制所代表的任意字符十六进制

注意:计算长度时,每个转义字符只被算作一个字符!

举例:
#include <stdio.h>
int main()
{
    printf("%d\n", strlen("abcdef"));
    printf("%d\n", strlen("c:\test\628\test.c"));
    //  \t, \62,\t都被解析成一个转义字符
    return 0;
}

八、注释

注释就是对代码的解释和说明,目的是让人们能够更加轻松地了解代码,可以提高代码的可读性,注释本身不会被计算机编译。

注释有两种风格:

  • C语言风格的注释:/* 这里是注释 */
    缺陷:不能嵌套注释
  • C++风格的注释: //这里是注释
    可以注释一行也可以注释多行

九、选择语句

选择语句可能是最常见的流程控制语句,能够根据表达的值执行多条语句中的一条。C语言包括两类选择语句,if语句和switch语句

  • if语句
if (表达式)
    语句
else if (表达式)
    语句
else
    语句

  • switch语句
switch (表达式)
{
    case 常量表达式:
        多条语句
    ...
    case 常量表达式:
        多条语句
    default:
        多条语句
}

十、循环语句

在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。 循环语句是由循环体及循环的终止条件两部分组成的。

  • while循环
while (表达式) {//表达式即终止条件
    循环体语句
    }
  • for循环
for (表达式1; 表达式2; 表达式3){
//表达式1是初始化表达式,只执行一次;表达式2是控制表达式,即终止条件;表达式3在每次循环后被执行。
    循环体语句
    }
  • do while
do 
   循环体语句
while(表达式);

注:只是简单认识,后期会重点扩展。有不对的地方希望大佬们评论指正,互相学习[玫瑰]

  • 20
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值