初识C语言[1]:
本章是对C语言基础知识的一个大概认识,总结的知识点若有错误欢迎大家积极指正。
什么是C语言
C语言是一门面向过程的、抽象化的通用程序设计语言。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
第一个C语言程序
#include<stdio.h>
#pragma<windows.h>
int main()
{
printf("hello world!\n");
system("pause");
}
//main函数是一个程序的入口,在一个工程中有且只有一个
注:#pragma<windows.h>,system(“pause”)语句是为了解决vc2013中输出结果闪退的问题。
数据类型
char | 字符型 |
---|---|
short | 短整型 |
int | 整型 |
long | 长整型 |
1ong 1ong | 更长整形 |
float | 单精度浮点数 |
double | 双精度浮点型 |
关于上述数据类型的大小,我们可以写个小程序看一下:
#include<stdio.h>
#include<windows.h>
int main()
{
printf("char size=%d\n", sizeof(char));
printf("short size=%d\n", sizeof(short));
printf("int size=%d\n", sizeof(int));
printf("long size=%d\n", sizeof(long));
printf("long long size=%d\n", sizeof(long long));
printf("float size=%d\n", sizeof(float));
printf("double size=%d\n", sizeof(double));
system("pause");
return 0;
}
注:long这个数据类型,他在内存中所占的字节数与操作系统是有关的,在64的操作系统中他是占8个字节的,而在32位的操作系统中他是占4个字节的。
变量
变量:值会变得量 (例如:人的年纪,身高,体重等)
常量:值不会变的量(例如:圆周率等)
- 变量的定义
关键字 标识符
例如:
int age=3
int weight=30
char ch=‘w’
- 变量的分类:
全局变量:定义在代码块外的变量叫做叫做全局变量,其作用域是在整个工程中都有效,生命周期是整个程序的生命周期。
局部变量:定义在代码块内部的变量叫做局部变量,其作用域只在他所在的代码块中才有效,生命周期是作用域生命周期的开始到作用域生命周期的结束。
注:当局部变量和全局变量同名时,局部变量优先使用。
常量
- 字面常量
int main()
{
1;//字面长量,编译器可以编译过,但无意义
}
- const修饰的常量
int main()
{
const float pai = 3.14f; //注:必须初始化,初始化后编译器不允许再修改常量的值
pintf("%f",pai);
}
类型前加const修饰符限定变量为只读,称为常量,定义时必须初始化,且初始化后编译器不允许再修改常量的值。
- #define定义的标识符常量
#include<stdio.h>
#include<windows.h>
#define max 3//宏定义好处:见名知意,便于维护
#define 标识符 常量
- 枚举长常量
#include<stdio.h>
#include<windows.h>
int main()
{
enum {
red = 0,
green=3,
yellow,
};
printf("%d\n%d\n%d\n",red,green,yellow);//其常量值在没有赋值时系统会默认给它的第一个变量赋值0,后一个的变量赋值只与他前面的变量赋值
system("pause");
return 0;
}
字符串,转义字符和注释
- 字符串
由双引号引起来的一串字符称之为字符串面值,简称字符串。字符串串以\0结尾
#include<stdio.h>
#include<windows.h>
int main()
{
char arr1[] = { "hello" };
printf("arr1 length=%d\n",strlen(arr1));//输出字符串的长度 输出结果为5
printf("arr1 size=%d\n", sizeof(arr1));//输出字符串的大小,要算\0 输出结果为六
system("pause")
return 0;
}
注:strlen输出字符串长度,直到遇到\0才结束查锁,输出长度。要注意”hello"在空间中所占的字节的大小是6不是5,因为要算上\0所占的一个字节
- 转义字符:
转义字符 | 解释 |
---|---|
\? | 在书写连续多个字符时使用,防止他们被解析成三字母词 |
\’ | 为表示字符常量’ |
\* | 用于表示一个字符内部的双引号 |
\\ | 用与表示一个反斜杠,防止他被解释成一个转义字符 |
\a | 警告字符,蜂鸣 |
\b | 退格符 |
\f | 进纸符 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ddd | ddd表示1-3个八进制数字,如:\130 |
\xdd | dd表示2个十六进制数字,如:\x41 |
思考一下下面这个程序的执行结果:
#include<stdio.h>
#include<windows.h>
int main()
{
printf("%d\n", strlen(“c:\test\328\test.c”));
system(“pause”);
}正确答案是:14,
解析:‘c’,’:’,’\t’,‘e’,‘s’,‘t’,’\32’,‘8’,’\t’,‘e’,‘s’,‘t’,’.’,‘c’。特别注意:\ddd表示八进制所以,d不能大于8。
多提一点:那要是想要打印输出c:\test\328\test.c该怎末办呢?其实只需要写成这样就可以了c:\\test\\328\\test.c。
注释
快捷键:Ctrl+K+C
- C语言风格注释:/* xxxxxxxx*/
缺点:不能嵌套注释 - C++风格注释://xxxxxx