c语言初识

1.什么识C语言

C 语言是一门通用 计算机编程语言 ,广泛应用于底层开发。 C 语言的设计目标是提供一种能以简易
的方式 编译 、处理低级 存储器 、产生少量的 机器码 以及不需要任何运行环境支持便能运行的编程语
言。
尽管 C 语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的
C 语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式 处理器 (单片机或称 MCU )以及超
级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的 C 语言语法产生差异,由 美国国家标准局 C 语言制
定了一套完整的美国国家标准语法,称为 ANSI C ,作为 C 语言最初的标准。 [1] 目前 2011 12 8
日,国际标准化组织( ISO )和国际电工委员会( IEC )发布的 C11 标准 C 语言的第三个官方标
准,也是 C 语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉
字编程。
C 语言是一门面向过程的计算机编程语言,与 C++ Java 等面向对象的编程语言有所不同。
其编译器主要有 Clang GCC WIN-TC SUBLIME MSVC Turbo C 等。
2.第一个C语言程序
#include <stdio.h>
int main()
{
   printf("hello world\n");
   printf("he he\n");
   return 0;
}
3.相关的数据类型
char        //字符数据类型
short       //短整型
int         //整形
long        //长整型
long long   //更长的整形
float       //单精度浮点数
double      //双精度浮点数

4.变量,常量

4.1变量:
1.全局变量
2.局部变量
注意:局部变量和全局变量冲突的时候局部变量优先使用
变量的使用:
1.不允许在同一个作用域中定义多个相同名称的变量。
2.允许在不同作用域中定义相同的变量。
3.不同作用域中定义变量,在访问时采用就近原则。
变量的作用域和生命周期:
1.作用域:
1. 局部变量的作用域是变量所在的局部范围。
2. 全局变量的作用域是整个工程。
2.生命周期:
1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2. 全局变量的生命周期是:整个程序的生命周期。
4.2常量
1.字符常量
2.const修饰的常变量
本质上还是变量
3.#define定义的标识符常量
4.枚举常量
5.字符串+转义字符+注释
\?     //在书写连续多个问号时使用,防止他们被解析成三字母词
\'     //用于表示字符常量'
\"     //用于表示一个字符串内部的双引号
\\     //用于表示一个反斜杠,防止它被解释为一个转义序列符
\a     //警告字符,蜂鸣
\b     //退格符
\f     //进纸符
\n     //换行
\r     //回车
\t     //水平制表符
\v     //垂直制表符
\ddd   //ddd表示1~3个八进制数字,如\130X
\xdd   //dd表示2个十六进制数字,如\x30

6.选择语句

#include<stdio.h>
int main()
{
	int input = 0;
	printf("加入CSDN,你要好好学习吗(1/0)?");
	scanf("%d", &input);
	if (1 == input)
	{
		printf("好offer\n");
	}
	else if (0 == input)
	{
		printf("回家买红薯\n");
	}
	else
	{
		printf("输入错误\n");
	}
	return 0;
}

7.循环语句

#include<stdio.h>
int main()
{
	int line = 0;
	while (line <= 20000)
	{
		printf("敲代码\n");
		line++;
	}
	if (line > 20000)
	{
		printf("好offer\n");
	}
	else
	{
		printf("好好学习,天天编程\n");
	}
	return 0;
}

8.函数

#include<stdio.h>
int add(int x, int y)
{
	return x + y;
}
int main()
{
	int num1 = 0;
	int num2 = 0;
	int sum = 0;
	scanf("%d %d", &num1, &num2);
	sum = add(num1, num2);
	printf("sum=%d", sum);


	return 0;
}

9.数组(一组相同类型元素的集合)

1.数组的定义

int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素

2.数组的下标

C 语言规定:数组的每个元素都有一个下标,下标是从 0 开始的。
3.数组的使用
#include <stdio.h>
int main()
{
 int i = 0;
 int arr[10] = {1,2,3,4,5,6,7,8,9,10};
 for(i=0; i<10; i++)
 {
       printf("%d ", arr[i]);
 }
 printf("\n");
    return 0;
}

10.操作符

https://blog.csdn.net/zhanghong056/article/details/76667298?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166692021516782395338145%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166692021516782395338145&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-4-76667298-null-null.142^v62^control_1,201^v3^add_ask,213^v1^control&utm_term=%E6%93%8D%E4%BD%9C%E7%AC%A6%E4%BC%98%E5%85%88%E7%BA%A7&spm=1018.2226.3001.4187https://blog.csdn.net/zhanghong056/article/details/76667298?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166692021516782395338145%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166692021516782395338145&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-4-76667298-null-null.142%5Ev62%5Econtrol_1,201%5Ev3%5Eadd_ask,213%5Ev1%5Econtrol&utm_term=%E6%93%8D%E4%BD%9C%E7%AC%A6%E4%BC%98%E5%85%88%E7%BA%A7&spm=1018.2226.3001.41872.除号和取余的用法

除号的两端如果都是整数,执行的就是整数除法

除号的两端至少有一个是浮点数,才能执行浮点数的除法

%操作符的两端必须是整数

3.size of和strlen的区别

size of是操作符,计算变量所占内存的大小,单位是字节

strlen是库函数,计算字符串长度,统计的是字符串\0之前出现的字符个数

4.++的使用方法

后置++:先使用,后++

前置++:先++,后使用

11.常见的关键字

auto   break   case   char   const   continue   default   do   double else   enum  
extern float   for   goto   if   int   long   register     return   short   signed
sizeof   static struct   switch   typedef union   unsigned   void   volatile   while
1.关键字typedef的使用
typedef unsigned int unit;
int main()
{
	unsigned int age;
	unit age2;
	return 0;
}

2.关键字static

先看一下这两段代码

#include<stdio.h>
void test()
{
	int a = 0;
	a++;
	printf("%d\n", a);
}
int main()
{
	int i = 0;
	while (i < 10)
	{
		test();
		i++;
	}
	return 0;
}
#include<stdio.h>
void test()
{
    static int a = 0;
	a++;
	printf("%d", a);
}
int main()
{
	int i = 0;
	while (i < 10)
	{
		test();
		i++;
	}
	return 0;

}

第一个代码输出的是全是一,这是因为普通的局部变量是放在栈区上的,这种局部变量进入作用域创建,出了作用域释放。

第二个代码输出的是1,2,3,4,5,6,7,8,9,10,这是因为局部变量被static修饰后,这种变量就放在了静态区,放在静态区的变量,创建好后,知道程序结束才释放。

本质上:static的修饰改变了局部变量的储存位置,因为储存位置的差异,是执行效果不一样。

static修饰全局变量:

只能在源文件内部使用,作用域变小。

static修饰函数:

只能在源文件内部使用,作用域变小

12.#define定义常量和宏
#include<stdio.h>
//函数定义
int MAX(int x, int y)
{
	/*if (x < y)
	{
		return x;
	}
	else
	{
		return y;
	}*/
	return (x > y ? x : y);
}
//宏定义
#define Max(x,y)  (x>y?x:y)

int main()
{
	int a = 10;
	int b = 20;
	int m = MAX(a, b);
	printf("%d", m);
	return 0;
}

13.指针

1.内存

内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。
所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是 1 个字节
为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该 内存单元的地
2.指针变量的大小
32位下4个字节
64位下8个字节
注意:无论类型如何,指针变量的大小都相同
           x86是32位环境
           x64是64位环境
1.指针就是地址
2.口头语中指针一般是指针变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值