初识C语言

计算机语言:人和计算机交流的语言:C、Java、Python、C++(C plus plus)等。

计算机语言的发展:低级--->高级。

二进制指令--->汇编指令(助记符)--->B语言--->C语言

C语言的国际标准:ANSI-C:C89、C90、C99等。

编辑器只有编辑功能,编译器才有编译功能。

主要的编译器有:GCC,MSVC等。

Q:编译是什么?

A:C/C++是编译型的语言,是txt.c--->编译--->链接--->txt.exe

Q:为什么写代码?

A:为了解决生活中的问题。


第一个C语言程序

创建源文件:.c后缀的为源文件;.h为后缀的为头文件;。cpp后缀的为C++文件。

.cpp 编译器按照c++的语法编译代码

.c 编译器按照c的语法编译代码

#include<stdio.h>
//C语言中一定要有main函数
//主函数

//标准的主函数的写法
int main() 

{
	printf("123");//头文件中包含的函数
	return 0;//返回的是int类型

}



//古老的写法-不推荐
//void main()
//{

//}

std--标准

i - input

o - output

return 0;表示返回的是正常值,约定的习惯。

main函数是程序的入口,有且仅有一个。


数据类型

char               // 字符数据类型

short              // 短整型

int                  // 整型

long              // 长整型

long long      // 更长的整型

float             // 单精度浮点型

double         // 双精度浮点型

计算机中的单位:bit、Byte、KB\MB\GB\TB\PB.

创建变量的本质:向内存申请空间。

int age = 20 ;

变量和常量

常量:不变的值

变量的定义

short age=20;
int high=180;
float weight=50.0;

局部变量与全局变量

int a=10;//全局变量
int main()
{
    int b=20;//局部变量
    int a=100;//当局部变量和全局变量名字相同的情况下,局部优先.
    return 0;
}

VS编译是scanf报错的两个解决方案:

1. scanf 改为 scanf_s.是VS自己的函数,只有VS自己的编译器认识.(尽可能避免哈!!)

2.在源文件的第一行加上 #define _CRT_SECURE_NO_WARINGS (其他编译器不会理会)

(记得给自己电脑装everything,方便查找自己电脑的文件路径)


变量的作用域

变量在哪里可以使用,哪里就是变量的作用域。

1.局部变量的作用域就是局部变量的局部范围

int main()
{
    {
        int a=10;
        printf("%d\n",a);
    }
}

2.全局变量作用域是整个工程

int a=10;
void test()
{
	printf("test-->%d\n", a);
}


int main()
{
	
	test();
	{
		printf("%d\n", a);
	}
	printf("%d\n", a);
	return 0;
}

3. 声明来自其他文件的全局变量

4.变量的生命周期

  • 局部变量的生命周期:进入作用域开始--->出作用域结束
  • 全局变量的生命周期:整个程序的生命周期

常量(学完数组再看一遍)

C语言的常量:

1. 字面常量

'w';//字符常量
"abc";//字符串常量
30;

2. const修饰的常变量

const int a = 10;
a = 20;//编译器不允许修改
printf("%d\n", a);

在C语言中,const修饰的a,本质是变量,但是不能被修改,有常量的属性。

const int n = 10;
int arr[n] = { 0 };//编译器在此处报错,表达式必须含有常量.说明n是一个变量

3. #define定义的标识符常量

4. 枚举常量


字符串

 '' '' 双引号引起的是字符串.

C语言中没有字符串类型,没有字符串变量,可以用数组存储.

字符串的末尾自动添加了一个转义字符  \0  ,表示字符串到这里截止.

当用strlen求字符串长度,不计算  \0  的长度,只是在遇到时停止.

找不到 \0 时,strlen继续向下寻找,遇到其他空间的 \0 停止.产生越界

不完全初始化

字符数组中有未被初始化的元素,默认为初始化为 \0 ,

否则,strlen遇到 \0 停止


转移字符

\ 表示转义

转义:改变字符的意义.C语言规定的转义字符:

转义字符    释义
\?    在书写连续多个问号时使用,防止他们被解析成三字母词
\’    用于表示字符常量’
\"    用于表示一个字符串内部的双引号
\\    用于表示一个反斜杠,防止它被解释为一个转义序列符
\a    警告字符,蜂鸣
\b    退格符
\f    进纸符
\n    换行
\r    回车
\t    水平制表符
\v    垂直制表符
\ddd    ddd表示1~3个八进制的数字。 如: \130 X
\xdd    dd表示2个十六进制数

/*   
\ddd :表示八进制数
\xdd :表示十六进制数
*/

int main()
{
	printf("%c\n", '\130');
	printf("%d\n", '\130');
    printf("%c\n", '\x60');
    printf("%d\n", '\x60');// \130,\x60代表的都是一个字符
	return 0;
}

空格也是一个特殊的字符

转义字符算一个字符

\t \n 虽然效果是 有四个空格或者换行,但本质上算一个字符


注释

养成给自己的代码写注释的习惯

1.注释可以梳理思路

2.注释可以解释复杂的代码

3.写代码时写注释,能够帮助自己,帮助别人(doge).

//两种注释方法

//  C++的注释分割
/*C的注释分割*/

int main()
{
    int arr[10];/*解释这段代码*/
    return 0;
}

//C注释的缺陷:/**/不支持嵌套注释

选择语句

1. if else 语句

2. switch 语句


循环语句

1. while循环

2.for循环

3.do while循环


函数

C语言是结构化的程序设计语言---->顺序结构\选择结构\循环结构.

参数(原材料)--->函数(工厂)----->结果(产品)


数组

数组存放一组相同类型的值.

数组的下标:每个元素都有下标,下标从0开始,数组通过下标访问元素.

int arr[]={0,1,2,3,4,5,6,7,8,9};

C99标准之前,数组的大小都是用常量或者常量表达式指定.

C99标准之后,支持变长数组,这时候允许数组的大小是变量,但这种指定的方式的数组是不能初始化的. 


0的区分

1--->  0     数字0

2--->  '0'   字符0   ASCII值是48

3----> '\0'   字符    ASCII值是0   和数字 0 没有区别

4----> EOF  end of file 文件结束的标志是 -1


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值