#include
int main() {
printf("HelloWorld");
}
(1)数据类型分类
1.char 字符数据类型 ,长度1
2.short 短类型数据类型,长度4
3.int 整型数据类型,长度2
4.long 长整型,长度4
5.long long 更长的整型,长度8
6.float 单精度浮点数,长度4
7.double 双精度浮点数,长度8
(2)长度计算使用sizeof(数据类型参数);
(3)输出所使用的符号
short %hd
int %d
long %ld
long long %lld
float %f
double %lf
char %c
(1)变量的定义
变量类型 变量名(=初始化数据);
(2)常量的定义
常量顾名思义,就是不可改变的变量,使用修饰词const:
示例:
#include
int main() {
const int a = 10;
a = 20;
printf("%d\n",a);
}
报错图:
(1)如何定义标识符
一般在#include
#define 常量名 值
#include
#define MAX 50
int main() {
printf("%d",MAX);
return 0;
}
(1)枚举的定义
enum 变量名{
定义的属性值1 = 0,定义的属性值2,定义的属性值3,…定义定义的属性值n
}
定义在main方法内部
注意:属性值后面不跟值默认是0,也可以自定义值,例如定义的属性值1 = 100,则从100开始,后面依次加一。
例1:使用默认值
#include
int main() {
enum DAY{
day0,day1,day2,day3
};
printf("%d %d %d %d",day0,day1,day2,day3);
}
例2:自定义值
#include
int main() {
enum DAY{
day0 = 10,day1,day2,day3
};
printf("%d %d %d %d",day0,day1,day2,day3);
}
例3:前面使用默认值后面自定义值
#include
int main() {
enum DAY{
day0,day1,day2=12,day3
};
printf("%d %d %d %d",day0,day1,day2,day3);
}
(1)字符串如何定义
c语言字符串的定义和java中的字符串定义还是有区别的,在C语言的数据类型中,我们并没有看到有String类型的数据,而仅仅只有char类型数据,说明c语言的字符串不能直接定义,需要借助数组定义。通常有三种定义方法
第一种:char 字符串名字[长度] = {字符串所含元素};
这一种给出的字符串的元素可以不等于字符串的长度,可以小于,但是不能大于字符串的长度。给的元素小于数组的长度,打印出的是实际元素个数,但是长度还是定义的长度
#include
int main() {
char arr[3] = {'a','b'};
printf("%s\n",arr);
}
第二种:char 字符串名字[] = {字符串所含元素};
一般这种需要在末尾加上’\0’,表示结束。
#include
int main() {
char arr[] = {'a','b','\0'};
printf("%s\n",arr);
}
第三种:char 字符串名字[] = “字符串包含元素”;
#include
int main() {
char arr[] = "abc";
printf("%s\n",arr);
}
注意:这三种乍得一看似乎没有区别,其实还是有区别的,主要区别在于’\0’结束符的使用
(2)转义字符
\' 单引号
\" 双引号
\\ 反斜杠
\n 换行
\r 回车
\t 水平制表符
(1)判断
语法:
if(判断条件){
执行内容
}else if(判断条件1){
执行内容2
}else{
执行内容3
}
(2)选择
#include
int main() {
int n;
scanf("%d",&n);
switch(n){
case 0:{
printf("%d\n",n);
break;
}case 1:{
printf("%d\n",n);
break;
}case 2:{
printf("%d\n",n);
break;
}
}
}
(3)循环
①for循环
#include
int main() {
for(int i =0;i < 10;i++){
printf("%d\n",i);
}
}
②while循环
#include
int main() {
int n =0;
while(n < 10){
printf("%d\n",n);
n++;
}
}
③do … while循环
#include
int main() {
int n =0;
do{
printf("%d\n",n);
n++;
}while(n < 10);
}
函数一般用于流程化的东西,也称为批量处理。例如计算a与b的和,这里的a和b是泛指,不是只具体的,这时候使用函数来计算很明显能提高效率。
#include<stdio.h>
int sum(int a,int b); //声明函数
int main() {
int a = 10;
int b = 20;
printf("%d\n",sum(a,b));
}
int sum(int a,int b){
return a+b;
}
(1)数组的定义
①int arr[5] = {数组的五个元素,或者小于5个元素,默认为0} ;
#include
int sum(int a,int b); //声明函数
int main() {
int arr[5] = {1,2,4,5,6} ;
for(int i =0;i < 5;i++){
printf("%d",arr[i]);
}
}
②int arr[] = {数组的元素} ;
#include
int sum(int a,int b); //声明函数
int main() {
int arr[] = {1,2,4,5,6} ;
for(int i =0;i < 5;i++){
printf("%d",arr[i]);
}
}
算术操作符
+ - * 、 %
移位操作符
>> <<
位操作符
& ^ |
赋值操作符
= += -= *= /= &= |= >>= <<=
单目操作符
! 逻辑反操作
-
+
& 取地址
* 引用操作符
~ 取反操作
--
++
关系操作符
>
>=
<
<=
!=
==
逻辑操作符
&&
||
三亩条件操作符
a > b? a : b
结构题使用struct关键词修饰,结构体表示的是例如表示一个学生的信息,学生信息属性不止一个并且都是一个人的属性我们如何表示,使用结构体就能完美的表示,例如还有银行卡的信息,id号,拥有者姓名,卡的类型也需要表示
#include<stdio.h>
struct Student{
int id;
char name[20];
int age;
char sex[4];
};
int main() {
struct Student stu = {1,"张三",10,"男"};
printf("id=%d name=%s age=%d sex=%s",stu.id,stu.name,stu.age,stu.sex);
}
指针也就是一个地址的映射。把一个变量的地址址赋值给一个指针。
#include
int sum(int a,int b); //声明函数
int main() {
int m = 10;
int* p = &m; //&取地址址的意思,把m的地址复制给指针p
*p = 20; //引用p复制给20
printf("%d",*p);
}