初识C语言

C语言常见概念

1,C语言是什么?

​ 人和计算机交流,需要使用计算机语言,给计算机下发指令让计算机工作,C语言就是众多计算机语言中的一种

2,C语言的历史和辉煌

​ C语言最初是作为unix系统的开发工具发明的,unix系统跟windows, macos ,linux操作系统类似

​ unix是开源的操作系统,后边延伸出了linux

3,编译

3.1编译和链接

	C语言是一门编译型计算机语言,源代码都是文本文件,文本文件本身无法执行,必须通过编译器编译和链接器链接,生成计算机可执行的二进制文件才能执行。程序是放在.c文件的,经过编译和链接两个过程最终生成可执行的程序。

3.2 编译器对比

​ 通过命令编译代码:msvc、clang、gcc

​ 集成开发环境(ide):vs-studio(msvc),、xcode(clang) 、codeblocks(gcc)、devc++(gcc)、 clion(cmake)

<IDE一般包括代码编辑器,编译器,调试器和图形用户界面>

4,VS项目和源文件、头文件

​ .h—>header 头文件

​ .c—>源文件

5,第一个C语言程序

5.1 创建源文件

test.c

#include <stdio.h>

int main()
{
	printf("hello world\r\n");
	return 0;

}

编译+链接(ctrl f5)—>可执行程序—>运行

hello world

6,main函数

#include <stdio.h>

int main()
{
	return 0;
}
  • main 函数是程序的入口

  • 项目中有且只有一个

7,printf和库函数

7.1 printf

需要包含stdio.h standard input output 标准输入输出函数

print format 按照格式打印数据

“\n” 换行

“\r” 回车

%d 打印十进制整形

%c 打印字符 ‘w’ 单引号引起来的是字符

%f 打印小数

%d %c 是占位符,相当于在这占了一个位置,后边需要添加个参数去替换它

#include <stdio.h>

int main()
{

	printf("hello\r\n");  // 打印字符串
    printf("%d\r\n",100); // 打印整型数据
    printf("%c\r\n",'w'); // 打印字符
    printf("%f\r\n",3.5f);// 打印浮点数
	return 0;

}

7.2 库函数

c语言不提供函数,但是c语言提供标准:

printf —>打印数据

scanf —> 输入数据

有了这个标准,C语言的编译器厂商去根据标准实现这些函数,所以这些函数是编译器厂商提供的,这些函数集成在一起成为标准库,这些函数就是库函数,有些函数功能一样,但是不同的厂商在实现细节上可能有所不同

参考链接

https://cplusplus.com/reference/clibrary/

8, 关键字

C语言中有一批保留的名字,比如int, if, return ,这些付好被称为保留字或者关键字

  • 关键字都有特殊的意义,是保留给C语言使用的
  • 程序员自己在创建标识符的时候是不能和关键字重复的
  • 关键字不能自己创建
1,  auto break case char const continue default do double else enum extern 
2,  float for goto if int long register return short signed sizeof
3,  struct switch typedef union unsigned void volatile while 
    
    
int 	整型
char    字符
short   短整型
long    长整型
float	单精度浮点型
double  双精度浮点型
...

注意:在c99标准中加入了 inline ,restrict ,_Bool, _Comloex ,_Imaginary

9,字符和ASCII

参考链接 https://zh.cppreference.com/w/cpp/language/ascii

计算机能够识别的事二进制,数据在存储的时候也是二进制

a,b,c,d存储的时候也是二进制,但是每个人编码的都不一样,没办法形成一个统一的标准,在通信的时候信息不对等,所以

ANSI组织出台了一个标准ASCII编码,C语言中的字符就遵循了ASCII编码的方式

  • 字符A-Z的ASCII码值从65~90
  • 字符a-z的ASCII码值从97~122
  • 对应的大小写字符是ASCII码值的差值是32(大写+32得到小写)
  • 数字字符0-9的ASCII码值从48~57
  • 换行\n的ASCII值是:10
  • 在这些字符中ASCII的码值从0~31这32个字符是不可打印字符,无法打印在屏幕上观察
#include <stdio.h>

int main()
{
    for(int i =0;i<128;i++){
        
        printf("%c\n",i);
    }
    return 0;
}

10,字符串和\0

使用双引号括起来的一串字符,使用printf打印的时候用%s

  • 字符串在定义的时候末尾隐藏了一个\0,是字符串的结束标志,printf会打印到\0,strlen会计算到\0
  • 字符串相当于一个存放字符的数组

示例

‘w’ 字符

“w”字符串

“ ”空串

#include <stdio.h>

int main()
{
	printf("hello");
    printf("%s\n","hello");

}

//结果相同
    
#include <stdio.h>

int main()
{
	char arr1[3];

	char arr2[5];

	char arr3[]="abc";    		//'a' 'b' 'c' '\0'

	char arr4[]={'a','b','c'};	//'a' 'b' 'c'

	printf("%s\n",arr3);  // a b c 
	printf("%s\n",arr4);  // a b c ***
	
	return 0;

}

11,转义字符

转变了意思的字符

#include <stdio.h>


// n —>字符n
// \n—> 换行

int main()
{
printf(“abcndef”);
return 0;
}

//abcndef


#include <stdio.h>

int main()
{
printf(“abc\ndef”);
return 0;
}

//abc
//def


//   \'    代表字符'

#include <stdio.h>
int main()
{
    
    printf("%c",'w');
    
    //想打印一个'
    
    printf("%c",''');   //电脑会认为前边两个'是一对,后边的'落单了,所以需要改成
     printf("%c",'\'');        
    return 0;
}
//   \"    代表字符"

#include <stdio.h>
int main()
{
    
    printf("%c",'w');
    
    //想打印一个'
    
    printf("%s","abc");  
    printf("%c","\"");       //电脑会认为前边两个"是一对,后边的"落单了,所以需要改成 
    printf("%s","ab\"c\"");  //ab"c"
    return 0;
}
//   \\    反转义

#include <stdio.h>
int main()
{
    
    printf("c:\test\code"); //\t是一个转义字符 table 水平制表符,凑够8个 ,看\t前边有几个数据
    //想要正确打印一个路径的话
    printf("c:\\test\\code"); 
    return 0;
}
// \ddd   \xdd   字符8进制和字符16进制表示形式


int main()
{
	printf("%c",'\130');  //X
    printf("%c",'\x30');  //字符0  '0'
	return 0;

}

前边两个"是一对,后边的"落单了,所以需要改成
printf(“%s”,“ab"c”“); //ab"c”
return 0;
}


// \ 反转义

#include <stdio.h>
int main()
{

printf("c:\test\code"); //\t是一个转义字符 table 水平制表符,凑够8个 ,看\t前边有几个数据
//想要正确打印一个路径的话
printf("c:\\test\\code"); 
return 0;

}


```c
// \ddd   \xdd   字符8进制和字符16进制表示形式


int main()
{
	printf("%c",'\130');  //X
    printf("%c",'\x30');  //字符0  '0'
	return 0;

}

```c
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值