提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
这是本人第一次写博客,也是第一次开始正式的学习C语言,每个人不管做什么,开始时必然是小菜坤,所以我希望能通过写博客来见证新一代编程大神的成长之路!加油!
本文是对C语言编程最基本的概念开始,逐步加深对C语言的理解。
一、数据类型
1.字符数据类型 char
2.短整型 short
3.整型 int
4.长/更长整型 long/long long
5.单精度浮点数 float
6.双精度浮点数 double
%d----打印整型 %c----打印字符 %f----打印浮点数字(小数)
%p----以地址的形式打印 %x----打印16进制的数字
二、变量
1.全局变量
定义:全局变量是定义在代码块({})之外的变量
代码如下(示例):
#include <stdio.h>
int a = 100;
int main()
{
printf("%d\n", a);
return 0;
}
全局变量的作用域是整个工程
#include <stdio.h>
int global = 2020;//全局变量的作用域
void test()//定义一个test函数
{
printf("test()--%d\n", global);
}
int main()
{
test();//调用test函数
printf("%d\n", global);
return 0;
}
2.局部变量
定义:局部变量是定义在代码块({})内部的变量
#include<stdio.h>
int main()
{
int a = 100;
printf("%d\n", a);
return 0;
}
局部变量的作用域是变量所在的局部范围
#include <stdio.h>
int main()
{
//int num = 0;//此局部变量的作用域也在{}之内,看printf的位置
{
int num = 0;
printf("num=%d\n", num);
}
return 0;
}
变量名字不相同时(局部变量优先显示)
int a = 100; /*全局变量*/
int main()
{
int b = 10; /*局部变量*/
printf("%d\n", b);
return 0;
}
变量名字相同时(局部变量优先显示)
int a = 100;
int main()
{
int a = 10;
printf("%d\n", a);
return 0;
}
注:建议二者不要用相同的名字,会产生bug
3.变量的使用
计算两个数的和
#include<stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;//C语言规定变量要定义在代码块的最前面
scanf("%d%d", &num1, &num2);//输入数据-使用输入函数scanf。取地址符号&
sum = num1 + num2;
printf("sum=%d\n", sum);
return 0;
}
三、常量
1.字面常量
直观写出来的值:3;20;3.14等等。
2.const修饰的常变量
代码如下(示例):
int main()
{
//const常属性
const int num = 1;//const修饰了常变量num后,之后的num变量都不会改变一直是1
printf("%d\n", num);
int num = 2;
printf("%d\n", num);
return 0;
}
此程序最终会执行失败,因为num之间用const修饰,只能是4,打印不出来8
3.#define定义的标识符常量
代码如下(示例):
#define MAX 10//定义的标识符常量
int main()
{
int arr[MAX] = { 0 };
printf("%d\n", MAX);
return 0;
}
4.枚举常量(枚举关键:enum)
代码如下(示例):
enum Sex //enum是枚举关键
{
MALE,
FEMALE,
SECRET
}; //MALE,FEMALE,SECRET是枚举常量
int main()
{
/*enum Sex s = MALE;
printf("%d\n", s);*/
printf("%d\n", MALE); //0
printf("%d\n", FEMALE);//1
printf("%d\n", SECRET); //2
return 0;
}
四、字符串+转义字符+注释
1.字符串类型
int main()
{
"abcde";
"hello bit";//双引号引起来的就是字符串
"";//空字符串
return 0;
}
int main()
{
char arr1[] = "abc";//字符串abc放到数组arr1里面
//"abc"--'a','b','c','\0'---'\0'是字符串结束的标志
char arr2[] = { 'a', 'b', 'c', '\0' };//三个字符a,b,c放到数组里面,最后加个结束标志'\0'
printf("%s\n", arr1);//打印字符串用s
printf("%s\n", arr2);
return 0;
}
int main()
{
char arr1[] = "abc";
char arr2[] = { 'a', 'b', 'c', '\0' };
printf("%d\n",strlen(arr1));//strlen--string length;计算字符串长度的意思
printf("%d\n", strlen(arr2));
return 0;
}
这种由双引号(
Double Quote
)引起来的一串字符称为字符串字面值(
String Literal
),或者简称字符串。
注:字符串的结束标志是一个
\0
的转义字符。在计算字符串长度的时候
\0
是结束标志,不算作字符串内容。
2. 转义字符
转义字符
|
释义
|
---|---|
\? |
在书写连续多个问号时使用,防止他们被解析成三字母词
|
\' |
用于表示字符常量
|
\" |
用于表示一个字符串内部的双引号
|
\\ |
用于表示一个反斜杠,防止它被解释为一个转义序列符。
|
\a |
警告字符,蜂鸣
|
\b |
退格符
|
\f |
进纸符
|
\n |
换行
|
\r |
回车
|
\t |
水平制表符
|
\v |
垂直制表符
|
\ddd |
ddd
表示
1~3
个八进制的数字。如:\130 X
|
\xdd |
dd
表示
2个十六进制数字。如:\x30 0
|
示例:\t 水平制表符
int main()
{
printf("c:\test\32\test.c");//此时的打印结果会受到\t水平制表符的影响。
return 0;
}
若想要达到括号里的效果,则需要再加一个 \ 即可,即:
int main()
{
printf("c:\\test\\32\\test.c");//‘\\’用于表示一个‘\'的意思
return 0;
}
\' 和 \" 示例:
int main()
{
printf("%c\n", '\'');//\'用于表示字符常量’
printf("%s\n", "\"");//\"用于表示字符串内部的双引号"
return 0;
}
\ddd转义字符示例:
int main()
{
printf("%d\n",strlen("c:\test\32\test.c"));//32的十进制是26,26对应的ASCII码值是‘➡’
printf("%c\n", '\132');//132的十进制是90,90对应的ASCII码值是‘Z’
return 0;
}
\xdd转义字符 示例:
int main()
{
printf("%c\n", '\x61');//61的十进制是97,97的ASCII码值是‘a’
return 0;
}
3.注释
1.
代码中有不需要的代码可以直接删除,也可以注释掉
2.
代码中有些代码比较难懂,可以加一下注释文字
注释有两种风格:
C
语言风格的注释
/*xxxxxx*/
缺陷:不能嵌套注释
C++
风格的注释
//xxxxxxxx
可以注释一行也可以注释多行
五、选择语句
简单示例代码如下:
int main()
{
int input = 0;
printf("加入比特\n");
printf("你会好好学习吗?(1/0)>:");
scanf("%d", &input);
if (input == 0)
printf("卖红薯\n");
else
printf("好offer\n");
return 0;
}
int main()
{
int line = 0;
printf("加入比特\n");
while (line < 20000)
{
printf("敲一行代码:%d\n", line);
line++;
}
if (line >= 20000)
printf("好offer\n");
return 0;
}
总结
这些都是基础的C语言,多多复习,加强记忆。念念不忘,必有回响!