目录
1, 数据类型
常见的数据类型:
char 字符串
int 整型
short 短整型(用来表示整型范围不是那么大的)
long 长整型
float 单精度浮 点型
double 双精度 浮点型
printf输出格式:
%d 打印整型
%c 打印字符
%f 打印浮点
。。。。
计算机中的单位:
bit -比特位
byte -字节 1byte = 8 bit
kb 1 kb = 1024 byte
#include <stdio.g>
int main
{
**printf("%d\\n",sizeof(short )); #2
printf("%d\\n",sizeof(int )); #4
printf("%d\\n",sizeof(long )); #4
printf("%d\\n",sizeof(float )); #4
printf("%d\\n",sizeof(double )); #8
}**
2, 变量
变量的分类
局部变量和全局变量
局部变量:定义在代码块{}之内的变量
全局变量:定义在代码块{}之外的变量
局部变量和全局变量建议不要相同,容易误会,产生bug
当局部变量和全局变量相同时,局部变量优先
变量的使用
输入数据使用输入函数:scanf
scanf("%d%d", &num1, &num2);
c语言规定-变量要定义在当前代码块最前面
3, 作用域
作用域:所作用的范围
局部变量作用域:一个变量所在的局部范围
全局变量的作用域:整个工程
4, 生命周期
生命周期:变量的生命周期是指变量的创建的销毁之间一个时间段
- 局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束
- 全局变量的生命周期:整个程序的生命周期
5, 常量
c语言常量分为以下种类:
-
字面常量: 字面上理解是常量。 例如:数字
-
const修饰的常变量 : 将变量转换为常量 例如:const int num = 4; 修改后是还是变量,但具有常量的属性
-
define定义的标识符常量:将将变量转换为常量 #define MAX(随便取)10(值); 定义常量,本质就是常量
-
枚举常量:
枚举:一 一列举
例: 性别:男,女,保密
enum Sex
{
MALE,
FEMALE,
SECRET
};
默认的值为0,1,2
6, 字符串
字符串类型;双引号引起的类型
int main(void) //主函数-程序的入口 main函数有且只有一个
{
char arr1[]="abc"; //数组
char arr2[]={'a', 'b','c'};
printf("%s\\n",arr1);
printf("%s\\n",arr2);
}
//abc
//abcabc
int main(void) //主函数-程序的入口 main函数有且只有一个
{
char arr1[]="abc"; //数组
// "abc" -- 'a' 'b' 'c' '\\0' --'\\0' 字符串的结束标志,不算内容
char arr2[]={'a', 'b','c',0};
printf("%s\\n",arr1);
printf("%s\\n",arr2);
}
//abc
//abc
数据在计算机中储存的是二进制
所有给计算机的符号编号
就是ASCII编码
int main()
{
char arr1[]="abc"; //数组
// "abc" -- 'a' 'b' 'c' '\\0' --'\\0' 字符串的结束标志
char arr2[]={'a', 'b','c'};
printf("%d\\n",strlen(arr1)); //3
printf("%f\\n",strlen(arr2)); //随机值
}
arr1 存放的数据 a b c \0(字符串的结束标志)
arr2 存放的数据 a b c
7, 转义字符
转义字符:转换字符串意义的字符
例如: printf(“abcn”)输出为abcn 若printf(“abc\n”)输出的则为abc \n就表示换行
转义字符 | 意义 | ASCII码值(十进制) |
\a | 响铃(BEL) | 007 |
\b | 退格(BS) ,将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
\r | 回车(CR) ,将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
\v | 垂直制表(VT) | 011 |
\\ | 代表一个反斜线字符'\' | 092 |
\' | 代表一个单引号(撇号)字符 | 039 |
\" | 代表一个双引号字符 | 034 |
\0 | 空字符(NULL) | 000 |
\ddd | 1到3位八进制数所代表的任意字符 | 三位八进制 |
\xhh | 1到2位十六进制所代表的任意字符 | 二位十六进制 |
int main()
{
printf("%d\\n",strlen("c:\\test\\32\\test.c"));
// \\32 -- 32是两个八进制数字
// \\32作为8进制代表的那个十进制数字,作为ASCII码值,对应的字符
// \\32 -->十进制 26 ->作为ASCII码的字符
};
8, 注释
/*
dsgdfj
*/
//aoisfoij
用在代码复杂的时候,方便自己和别人读懂代码
9, 选择语句
if选择
if else 选择
else选择
int main()
{
int input;
printf("你要好好学习吗?<1/0>");
scanf("%d", &input);
if (input == 1)
printf("给你好offer");
else
printf("去卖花生");
return 0;
}
10, 循环语句
- while 循环
- for 循环
- do..while 循环
while循环:
int main()
{
int line = 0;
int n = 0;
printf("加入比特");
while (line <20000)
{
n++;
printf("敲%d行代码\\n",n);
line++;
}
printf("好offer");
return 0;
}
11, 函数
- 自定义函数
- 库函数
ADD(int x ,int y) //自定义函数
{
int z = x + y;
return z;
}
int main()
{
int num1 = 10;
int num2 = 20;
int a = 213;
int b = 324;
int sum1;
int sum2;
sum1 = ADD(num1, num1);
sum2 = ADD(a, b );
printf("sum = %d\\n",sum1);
printf("sum = %d\\n",sum2);
}
12,数组
c语言给数组的定义:一组想同类型元素的集合
数组的定义
int main()
{
// int arr[10]; //定义一个存放10个整数数字的数组
// char ch[20]; //20个字符串的数组
// float arr2[5];
int arr[5] = {1,2,3,4,5};
//有下标,从0开始依次加1
int i= 0;
printf("%d\\n", arr[4]);//用下标访问元素
//遍历数组
while (i<5)
{
printf("%d ",arr[i]);
i++;
}
}