C语言基础知识


C语言作为大多编程学习者所接触的第一个语言,是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

Hello World 代码

Hello World !一般也是我们所接触的第一个C语言程序。

#include<stdio.h>  //标准输入输出头文件

int main()
{
	printf("Hello World!\n");
	return 0;
}

其中,#include<stdio.h>是头文件,意为标准输入输出;
main函数是程序的入口,且一个源文件只能有一个主函数;
若将 int 改为 void,则是不需要返回值的,则需要删掉 return 0。

system(“pause”);
是暂停的意思,等待用户信号;不然控台程序会一闪即过,你来不及看到执行结果。
system 是C函数库 stdlib.h、process.h 中的一个函数。必须写 #include <stdlib.h>头文件。用Ctrl+F5可以代替 system(“pause”);

数据类型

内置类型:

类型释义
char字符数据类型
int整形
short短整型
long长整型
long long更长的整形
float单精度浮点数
double双精度浮点数
bool布尔类型
void无类型

自定义类型:
struct enum union…

类型是为了申请内存空间,各类型开辟空间的大小也是不一样的。
操作数的存储大小由操作数的类型决定。//F10和F11 调试的快捷键
sizeof 操作符 以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。

#include<stdio.h>  

void main()
{
	printf("%d\n", sizeof(char));        // 1
	printf("%d\n", sizeof(int));         // 4
	printf("%d\n", sizeof(short));       // 2
	printf("%d\n", sizeof(long));        // 4
	printf("%d\n", sizeof(long long));   // 8
	printf("%d\n", sizeof(float));       // 4
	printf("%d\n", sizeof(double));      // 8
	printf("%d\n", sizeof(bool));        // 1
}

类型的使用

未初始化:

int a;

初始化:

  int a;
  a = 100//赋值 
//int a = 100;
  char ch = 'A';
  int age = 20;

字节、字、bit、byte的关系

字 word
字节 byte
位 bit
字长是指字的长度
1字节 = 8位(1 byte = 8bit)
1字 = 2字节(1 word = 2 byte)
1 KB = 1024 B
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB
1 P = 1024 T

  • 程序员日 为:10月24日

变量、常量

不变的值,C语言中用常量的概念来表示;变化的值,C语言中用变量来表示。

定义变量的方法

int age = 150;
float weight = 45.5f;
char ch = ‘A’;

变量的使用

#include <stdio.h>

void main()
{
	int a = 10;
	printf("%d\n", a);
	printf("%d\n", &a);   //地址0x
}

scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。

#include <stdio.h>

void main()
{
	int a, b;
	printf("imput a and b :");
	scanf("%d %d",&a, &b);   //“%d %d”  所以输入a与b的值时中间用空格隔开
	int sum = a + b;
	printf("sum = %d\n", sum);
}
//结果为:
imput a and b :10 20
sum = 30

scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。

变量的分类

局部变量
全局变量

#include <stdio.h>

void main()
{
	int a = 10;   
	//语句块
	{
		int b = 20;
		printf("a = %d\n", a);
		printf("a = %d\n", b);

	}
	printf("a = %d\n", a);
	printf("a = %d\n", b);   //错误
}

其中,a 为全局变量,在整个主函数范围内均可访问到;而 b 为局部变量,只能在变量所在的局部范围内访问到。(作用域

  • 当局部变量和全局变量同名的时候,局部变量优先使用。
    生命周期

变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。

  1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
  2. 全局变量的生命周期是:整个程序的生命周期。

字符串+转义字符+注释

字符串

由双引号引起来的一串字符称为字符串字面值,或者简称字符串

注:
字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。
C语言没有字符串类型。

#include <stdio.h>

void main()
{
	char *str = "Hello World.";
	printf("str = %s\n", str);

	char str1[] = "Hello World.";
	printf("str1 = %s\n", str1);

	char str2[] = { 'a', 'b', 'c' };
	printf("str2 = %s\n", str2);

	char str3[] = { 'a', 'b', 'c', '\0' };    // '\0'可以让字符结尾
	printf("str3 = %s\n", str3);

	char str4[] = { 'a', 'b', '\0','c' };
	printf("str4 = %s\n", str4);

//结果为:
str = Hello World.
str1 = Hello World.
str2 = abc烫烫烫烫蘃ello World.   //无 \0 时会出现随机字符
str3 = abc
str4 = ab

转义字符

如果在屏幕上打印一个目录: D:\code\test.c

若代码为:

#include <stdio.h>

int main()
{
	printf("D:\code\test.c\n");
	return 0;
}
//结果为:
D:code  est.c

可以看出,与想要的不符。

那正确的代码应该是:

#include <stdio.h>

int main()
{
	printf("D:\\code\\test.c\n");
	return 0;
}
//结果为:
D:\code\test.c
转义字符释义
\?在书写连续多个问号时使用,防止他们被解析成三字母词
\’用于表示字符常量’
\“用于表示一个字符串内部的双引号
\\用于表示一个反斜杠,防止它被解释为一个转义序列符。
\a警告字符(响铃符)
\b退格符
\f换页
\n换行
\r回车
\t水平制表符
\v垂直制表符
\dddddd表示1~3个八进制的数字。 如: \130 X
\xdddd表示2个十六进制数字。 如: \x30 0
#include<stdio.h> 
#include<string.h>

int main()
{
	printf("%d\n", strlen("abcdef"));    //长度不包含\0
	printf("%d\n", sizeof("abcdef"));    //大小包含\0
	// \32被解析成一个转义字符
	printf("%d\n", strlen("c:\test\328\test.c"));
	return 0;
}
//结果为:
6
7
14

strlen 需要 #include<string.h> 头文件。

注释

  1. 代码中有不需要的代码可以直接删除,也可以注释掉
  2. 代码中有些代码比较难懂,可以加一下注释文字

注释有两种风格:

  • C语言风格的注释 /xxxxxx/
    缺陷:不能嵌套注释
  • C++风格的注释 // xxxxxxxx
    可以注释一行也可以注释多行
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值