25天学会C语言-第一天-初识C语言上
C语言
目录
什么是C语言
C 语言是一门通用 计算机编程语言 ,广泛应用于底层开发。 C 语言的设计目标是提供一种能以简易的方式 编译 、处理低级 存储器 、产生少量的 机器码 以及不需要任何运行环境支持便能运行的编程语言。尽管 C 语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C 语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式 处理器 (单片机或称 MCU )以及 超级电脑等作业平台。C 语言是一门面向过程的计算机编程语言,与 C++ , Java 等面向对象的编程语言有所不同。其编译器主要有 Clang 、 GCC 、 WIN-TC 、 SUBLIME 、 MSVC 、 Turbo C 等。
第一个C语言程序
#include <stdio.h>//头文件
int main()
{
printf("hello worldn");//printf函数用于执行打印操作(必须包含stdio.h这个头文件)
return 0; } //返回值
//解释:
//main函数是程序的入口
//一个工程中main函数有且仅有一个
数据类型
char // 字符数据类型short // 短整型int // 整形long // 长整型long long // 更长的整形float // 单精度浮点数double // 双精度浮点数存在这么多的类型,其实是为了更加丰富的表达生活中的各种值。每种类型的大小是多少呢?我们可以借助sizeof()函数来观察每种类型的大小#include <stdio.h> int main() { printf("%dn", sizeof(char)); printf("%dn", sizeof(short)); printf("%dn", sizeof(int)); printf("%dn", sizeof(long)); printf("%dn", sizeof(long long)); printf("%dn", sizeof(float)); printf("%dn", sizeof(double)); printf("%dn", sizeof(long double)); return 0; }
类型的使用:char ch = 'w' ;int weight = 120 ;int salary = 20000 ;
C
语言有没有字符串类型?
c语言中没有string类型
在C++、java等编程语言中,String就是字符串。
在C语言中字符串用字符数组表示,没有单独的string类型变量。可通过string.h中定义的函数完成字符串的相关操作。
变量、常量
不变的值C语言中用常量来表示,变化的值用变量来表示
定义变量的方法
int age = 150 ;float weight = 45.5f ;char ch = 'w' ;
变量的分类
局部变量全局变量#include <stdio.h> int a = 2019;//全局变量 int main() { int local = 2018;//局部变量 //下面定义的a会不会有问题? int a = 2020;//局部变量 printf("a = %dn", a); return 0; }
总结:虽然上边也有一个a,但上边的a是全局变量,故局部变量 a 变量的定义其实没有什么问题的!当局部变量和全局变量同名的时候,局部变量优先使用。
变量的使用
#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 = %dn", sum);
return 0;
}
变量的作用域和生命周期
作用域:
一段程序代码中所用到的名字并不总是有效/可用的而限定这个名字的可用性的代码范围就是这个名字的作用域。
局部变量和全局变量的作用域1. 局部变量的作用域是变量所在的局部范围。2. 全局变量的作用域是整个工程。
生命周期变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。2. 全局变量的生命周期是:整个程序的生命周期。
常量
C
语言中的常量和变量的定义的形式有所差异。
C
语言中的常量分为以下以下几种:
字面常量const 修饰的常变量#defifine 定义的标识符常量enum枚举常量
#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"
这种由双引号(
Double Quote
)引起来的一串字符称为字符串字面值(
String Literal
),或者简称字 符串。
注:字符串的结束标志是一个 的转义字符。在计算字符串长度的时候 是结束标志,不算作字符串 内容。
转义字符
假如我们要在屏幕上打印一个文件路径:
c:codetest.c
我们该如何写代码?
#include <stdio.h>
int main()
{
printf("c:codetest.cn");
return 0; }
若这样编写代码执行结果如下:
这并不符合我们的预期,这里要引入转义字符的概念
下边列出了一些常用的转义字符
了解了这些转义字符之后,我们就知道上边的代码中的打印语句只要改为printf("c:\code\test.cn");就可以达到我们预期的效果
printf
(
"%cn"
,
'''
);//打印一个单引号‘
printf
(
"%sn"
,
"""
);//打印一个双引号“
题目示例
int main()
{
printf("%dn", strlen("abcdef"));//结果为6
printf("%dn", strlen("c:test328test.c"));//结果为14,因为两个t及32被解析为转义字符
return 0;
}
注释
1.
代码中有不需要的代码可以直接删除,也可以注释掉
2.
代码中有些代码比较难懂,可以加一下注释文字,增加代码的可读性
注释有两种风格:C 语言风格的注释 /*xxxxxx*/缺陷:不能嵌套注释C++ 风格的注释 //xxxxxxxx可以注释一行也可以注释多行
顺序语句
选择语句
if(条件)
{代码语句};else{代码语句};
也可以不加else
if(条件)
{代码语句};
if(条件)
{代码语句};
循环语句
while
语句 //可能一次都不执行
while(条件){
};
for
语句
for(int i=0;i<=3;i++){
};
do ... while
语句//最少执行一次
do{
}while(条件){
};
函数
int Add ( int x , int y ){int z = x + y ;return z ;}Add就是一个函数,它的作用是求给定的两数之和int main (){int num1 = 0 ;int num2 = 0 ;int sum = 0 ;printf ( " 输入两个操作数 :>" );scanf ( "%d %d" , & num1 , & num2 );sum = Add ( num1 , num2 );//调用函数printf ( "sum = %dn" , sum );return 0 ;}函数的特点是简化代码,代码重用