底行模式分屏:
vsp文件名 左右分屏
sp 文件名 上下分屏
数据类型
int 整型
内存:4字节
存储:int主要用来存放数据。
符号位:int 默认是有符号的数据
有符号short 类型数据:最高位是符号位,0正 1负
范围:[-(2^31),2^31-1 ]
unsigned int 无符号数据 十六位全用来放数字,都是正数
范围:[0,2^32-1 ]
long 整型
内存:32位计算机中 占4字节
64位计算机中 占8字节
存储:long主要用来存放数据。
符号位:long 默认是有符号的数据
有符号long 类型数据:最高位是符号位,0正 1负
unsigned long 无符号数据 十六位全用来放数字,都是正数
单精度浮点类型 float
内存:占 4 个字节
存放数据:存放浮点类型数据。
3.14 6.28 3.14e+10(科学计数法)=3.14*10^10
3.14e-10(科学计数法)=3.14*10^-10
双精度浮点类型 double
内存:占 8 个字节
空类型 void
内存:占 0 个字节
一般不会单独使用,经常配合指针等一块使用。
变量
变量里面存的是常量。
简介
概念:程序运行中,可以发生改变的量。
作用:在内存中,申请空间。
定义格式
变量的声明:
格式:<存储类型> <数据类型> 变量名;
eg:char ch; //声明一个名为ch的char类型变量
变量的定义:
格式:<存储类型> <数据类型> 变量名 = value;
eg:int number = 10;//在内存中有一个空间,空间名叫number,里面的值是10
变量的使用
#include <stdio.h>
int main()
{
//在内存中申请4个字节的空间,并往里面填充一个10
//以定义的方式
int number = 10;
//声明的方式
int number1;
//通过变量名往里面赋值
number1 = 20;
//printf函数--输出内容 %d输出整型
printf("number = %d\n",number);
printf("number1 = %d\n",number1);
return 0;
}
标识符
简介
标识符:标识符就是程序员自定一个符号,可以是变量名,函数名……
标识符定义规则
标识符由数字,字母,下划线组成,但数字不能开头。
标识符不可以和关键字重合。
标识符定义要求
- 见名知意
- 驼峰命名法:
-
- 大驼峰:每一个单词的首字母大写:SchoolName
- 小驼峰:第一个首字母大写,其他字母小写Schoolname。
- 下划线连接:school_name
关键字
关键字: 语言的作者. 赋予了一些词语特殊的含义. eg: if. int
数据类型: (12)
char short int long float double unsigned signed
struct enum union void
存储类型 6:
static const auto register volatile extern
逻辑类型 12 :
if while else do for switch case return default
goto break continue
特殊类型 2:
sizeof() typedef
常量
简介
概念:不可以发生改变的量。100 ,2.14 ,'a'
常量类型
- 分四种:
-
- 整型常量
- 字符类型常量
- 字符串类型常量
- 宏常量
数字类型常量
整数类型常量
整型类型常量 | 前缀 | 输出的占位符 | demo |
二进制 | 0b | 无 | 0b1010 |
八进制 | 0 | %#o | 0345 |
十进制 | 无 | %d | 1314 |
十六进制 | 0x | %#x | 0xabcd |
#include <stdio.h>
int main()
{
//定义一个变量number,里面存放八进制
int number = 0345;//八进制数字 0345
//C语言中输出用printf函数
printf("number = %#o\n",number);
printf("number = %d \n",number);
printf("number = %#x\n",number);
return 0;
}
浮点数类型常量
浮点类型的常量 | 前缀 | 占位符 | demo |
单精度浮点类型float | 无 | %f | 3.14f |
双精度浮点类型double | 无 | %lf | 3.14 -> 默认double |
sizeof()返回值:64位计算机 long类型
32位计算机 int类型。
#include <stdio.h>
int main()
{
//sizeof()功能:查看变量/常量/类型,在内存中所占字节的大小
//sizeof()返回值:64位计算机 long类型 32位计算机 int类型
printf("浮点类型常量3.14f在内存中所占的大小:%ld\n",sizeof(3.14f));
printf("浮点类型的常量3.14在内存中所占的大小:%ld\n",sizeof(3.14));
printf("\n");
double number = 1.0e+3;//1.0*10^3
printf("number = %lf\n",number);
return 0;
}
结果:
浮点类型常量3.14f在内存中所占的大小:4
浮点类型的常量3.14在内存中所占的大小:8
number = 1000.000000
字符类型常量
字符类型常量:
字符:非数值类型的数据。
表示形式:
字符的表示形式:再C语言中,使用 单引号 引起来的数据。
只能引用1个字符。
right : 'a' 'b' '1' '2'
error : '12'
#include <stdio.h>
int main()
{
//字符类型常量,需要使用char类型进行保存
char ch = 'a';//a -> 97
printf("ch = [%d] [%c]\n",ch,ch);
//字符类型变量,是否能存数字
char value = 98;
printf("value = [%d] [%c]\n",value,value);
//给A输出a
char ch1 = 'A';
printf("ch1 = [%c] [%c]\n",ch1+32,ch1+('a'-'A'));
return 0;
}
Oct Dec Hex Char Oct Dec Hex Char
────────────────────────────────────────────────────────────────────────
000 0 00 NUL '\0' (null character) 100 64 40 @
001 1 01 SOH (start of heading) 101 65 41 A
002 2 02 STX (start of text) 102 66 42 B
003 3 03 ETX (end of text) 103 67 43 C
004 4 04 EOT (end of transmission) 104 68 44 D
005 5 05 ENQ (enquiry) 105 69 45 E
006 6 06 ACK (acknowledge) 106 70 46 F
007 7 07 BEL '\a' (bell) 107 71 47 G
010 8 08 BS '\b' (backspace) 110 72 48 H
011 9 09 HT '\t' (horizontal tab) 111 73 49 I
012 10 0A LF '\n' (new line) 112 74 4A J
013 11 0B VT '\v' (vertical tab) 113 75 4B K
014 12 0C FF '\f' (form feed) 114 76 4C L
015 13 0D CR '\r' (carriage ret) 115 77 4D M
016 14 0E SO (shift out) 116 78 4E N
017 15 0F SI (shift in) 117 79 4F O
020 16 10 DLE (data link escape) 120 80 50 P
021 17 11 DC1 (device control 1) 121 81 51 Q
022 18 12 DC2 (device control 2) 122 82 52 R
023 19 13 DC3 (device control 3) 123 83 53 S
024 20 14 DC4 (device control 4) 124 84 54 T
025 21 15 NAK (negative ack.) 125 85 55 U
026 22 16 SYN (synchronous idle) 126 86 56 V
027 23 17 ETB (end of trans. blk) 127 87 57 W
030 24 18 CAN (cancel) 130 88 58 X
031 25 19 EM (end of medium) 131 89 59 Y
032 26 1A SUB (substitute) 132 90 5A Z
033 27 1B ESC (escape) 133 91 5B [
034 28 1C FS (file separator) 134 92 5C \ '\\'
035 29 1D GS (group separator) 135 93 5D ]
036 30 1E RS (record separator) 136 94 5E ^
037 31 1F US (unit separator) 137 95 5F _
040 32 20 SPACE 140 96 60 `
041 33 21 ! 141 97 61 a
042 34 22 " 142 98 62 b
043 35 23 # 143 99 63 c
044 36 24 $ 144 100 64 d
045 37 25 % 145 101 65 e
046 38 26 & 146 102 66 f
047 39 27 ' 147 103 67 g
050 40 28 ( 150 104 68 h
051 41 29 ) 151 105 69 i
052 42 2A * 152 106 6A j
053 43 2B + 153 107 6B k
054 44 2C , 154 108 6C l
055 45 2D - 155 109 6D m
056 46 2E . 156 110 6E n
057 47 2F / 157 111 6F o
060 48 30 0 160 112 70 p
061 49 31 1 161 113 71 q
062 50 32 2 162 114 72 r
063 51 33 3 163 115 73 s
064 52 34 4 164 116 74 t
065 53 35 5 165 117 75 u
066 54 36 6 166 118 76 v
067 55 37 7 167 119 77 w
070 56 38 8 170 120 78 x
071 57 39 9 171 121 79 y
072 58 3A : 172 122 7A z
073 59 3B ; 173 123 7B {
074 60 3C < 174 124 7C |
075 61 3D = 175 125 7D }
076 62 3E > 176 126 7E ~
077 63 3F ? 177 127 7F DEL
字符串类型常量
简介:
由多个字符组合而成的内容。
标识方法:
C语言中,字符串就是 双引号 引起来的内容。
注意:
-
- C语言中,字符串是使用 数组 进行存储的。
- 每一个字符串的结果都有一个 '\0' 用来表示字符串的结束。
注意:
a -> 变量名 a
'a' -> 字符 a
"a" -> 字符串 a
#include <stdio.h>
int main()
{
//target:定义一个字符串。
//C语言中使用数组来标识字符串
char email[128]="www.baidu.com";
//定义了一个数组,数组里有128个空间,用来存放字符串www.baidu.com
//字符串的占位符是 %s %s遇到\0就会停止打印
//
printf("email = %s\n",email);
char http[128] = "www.hqyj\0.com";
printf("http = %s\n",http);//使用%s,遇到\0就不打印了
//了解 字符串还可以用指针的方式进行表示
char *src = "hello world";
printf("src = %s\n",src);
return 0;
}
宏常量(标识常量)
简介:
宏定义:给一个常量或者常量表达式起一个其他名字。在使用此常量或常量表达式 可直接使用此名。
定义格式:
#define 宏名称 宏值
注意:
-
-
- 宏定义后面没有分号
- 本质是原样替换,预处理阶段替换
- 宏的名称一般情况是大写字母
-
#include <stdio.h>
//定义一个宏,名为max ,宏值为100
#define MAX 100
#define VALUE 20+30 //常量表达式
int main()
{
printf("MAX = %d\n",MAX);
printf("2*VALUE = %d\n",2*VALUE);//宏是原样替换
return 0;
}
结果:
MAX = 100
2*VALUE = 70
数据在计算机中的存储
在计算机中:数据全部都是使用补码来进行存储的。
负数:原码,反码,补码不一致。
原码:数据二进制的表示方式;
反码:符号位不变,其他位取反;
补码:反码 + 1
正数(无符号、正数):原码,反码,补码都是一致的。
C语言的运算符
用来连接多个表达式。
C语言中的运算符:
1. 单目运算符:+ - ++ -- ! ~ * &
a. ++运算符
自增运算符,在原有基础上自加1。
记忆:
后置++:先运算,再++。
前置++:先++,后运算。
#include <stdio.h>
int main()
{
//targer:测试自增运算符
//定义一个变量 number = 1;
int number1 = 10;
int value1 = number1++; //后增
printf("number1 = %d,value1 = %d\n",number1,value1);
int number2 = 10;
int value2 = ++number2; //前增
printf("number2 = %d,value2 = %d\n",number2,value2);
return 0;
}
结果:
number1 = 11,value1 = 10
number2 = 11,value2 = 11
b. --运算符
自减运算符,在原有基础上自减1。
记忆:
前置--:先--,后运算;
后置--:先运算,后--。
#include <stdio.h>
int main()
{
//number自减
int number1= 10;
int value1 = ++number1;
printf("number1 = %d,value = %d\n",number1,value1);
int number2 = 10;
int value2 = number2++;
printf("number2 = %d,value2 = %d\n",number2,value2);
return 0;
}
结果:
number1 = 11,value = 11
number2 = 11,value2 = 10
c. !取反运算符
计算机中,非0即真,只要不是0,那么这个值就是真。
!取反运算符:计算中表示真假 真(1),假(0)
真 ->!真 -> 假
#include <stdio.h>
int main()
{
int number = 0;
printf("!number = %d\n",!number);
int number1 = 23;
printf("!number1 = %d\n",!number1);
return 0;
}
结果:
!number = 1
!number1 = 0