转义字符
转义字符 | 释义 |
---|---|
\0 | 结束标志 |
\n | 换行 |
\' | 打印单引号 |
\" | 打印双引号 |
\\ | 打印一个反斜杠 |
\t | 水平制表符 |
\a | 警告字符,蜂鸣 |
? | 在书写连续多个问号时使用,防止它们被解析成三字符 |
\ddd | ddd表示1~3个八进制的数字 |
\xdd | dd表示2个十六进制数字 |
\v | 垂直制表符 |
\r | 回车 |
\f | 进纸符 |
\b | 退格符 |
以下是代码展示
#include <stdio.h>
int main()
{
printf("abc\0def");
printf("abcd\n");
printf("%c\n", '\'');
printf("%c\n", '\"');
printf("abc\\0def");
printf("c:\test\test.c");
printf("c:\\test\\test.c");
printf("\a");
printf("%c\n", "(are you ok??)");
printf("%c\n", "(are you ok\?\?)");
return 0;
}
-
结束标志\0: 如果字符串中出现\0那么程序只打印\0前面的内容。
-
转义字符?在书写连续多个问号时使用,防止它们被解析成三字母词,三字母词存在与老一版的编译器。
#include <stdio.h> int main() { //printf("%c\n", "(are you ok??)"); // ??) -> ] // (?? —> [ //(are you ok] //老版本的编译器输出结果 printf("%c\n", "(are you ok\?\?)"); //输出:(are you ok??) return 0; }
-
转义字符\ddd和\xdd,其中ddd表示1~3个八进制的数字,例如 ,\130. 转为十进制结果为
$$
80*0+813+8^21=88
$$
dd表示2个十六进制数字, 例如,\x30 ,转为十进制结果为
$$
160*0+161*3=48
$$
打印输出结果为转换为十进制后,十进制对应的ASCII码对应的字符#include <stdio.h> int main() { printf("\130\n"); //X printf("\x30\n"); // 0 return 0; }
补充
%d - 打印整型 %c - 打印字符 %s - 打印字符串 %f - 打印float类型数据 %lf - 打印double类型数据 %zu - 打印sizeof的返回值
条件语句 用if else语句实现
例如,如果好好学习,就能找到好的工作
如果不好好学习,就找不到好的工作
这就是一个选择语句
以下是代码演示
# include <stdio.h>
int main()
{
// 初始化
int input = 0;
//输入
printf("要好好学习吗?(0/1)\n"); // 提示符
scanf("%d", &input);
//if 语句判断
if ( 1== input)
printf("找到好的工作\n");
else
printf("找不到好的工作\n");
return 0;
}
循环语句 while语句
有些事情必须持之以恒的去做
例如 while语句实现连续输入1-100的数字
# include <stdio.h>
int main()
{
int a = 1;
while (a <= 100)
{
printf("%d\n", a);
a++;
}
return 0;
}
函数:减少工作量,实现代码复用
我们可以把函数比作工厂,当要使用函数时,只需将要求的输入数据(相当于原材料)输入到工厂当中,工厂会将其加工成想要的输出数据(相当于产品)。
函数工厂可以分为两大类,一类是库函数,一类是自定义函数
这里主要说明自定义函数,例如计算两个数的和:
# include<stdio.h>
int main()
{
//初始化
int num1 = 0;
int num2 = 0;
//输入
scanf("%d %d", &num1, &num2);
// 求和
int sum = num1 + num2;
// 输出
printf("%d\n", sum);
return 0;
}
利用函数计算两数的和
# include<stdio.h>
// 自定义求和函数 Add
int Add(int x, int y)
{
int z = 0;
z = x + y;
return z;
}
int main()
{
//初始化
int num1 = 0;
int num2 = 0;
//输入
scanf("%d %d", &num1, &num2);
// 调用求和函数Add
int sum = Add(num1,num2);
// 输出
printf("%d\n", sum);
return 0;
}
数组
定义
一组相同类型元素的集合
例如要存储1~10的数字
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }
数组的下标
例如,要访问数组arr的第8个元素,则有
int arr[10] = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
下标 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
#include<stdio.h>
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
printf("%d", arr[7]);
return 0;
}
//输出数字8
数组的使用
打印数组arr当中的所有元素
#include<stdio.h>
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int i = 0;
while(i<10)
{
printf("%d\n", arr[i]);
i++;
}
return 0;
}
操作符
算术操作符
+(加) | -(减) | *(乘) | /(除) | %(模) |
---|
这里有两点需要注意
- 除号的两端都是整数的时候,执行的是整数除法,如果两端只要有一个浮点数就执行浮点数的除法
- 取模,相当于两数相除取它们的余数,取模操作符的两个操作符只能是整数
#include <stdio.h>
int main()
{
int a = 7 / 2;
int b = 7 % 2;
printf("%d\n", a); //3
printf("%d\n", b); //1
float c = 7 / 2.0;
printf("% .2f\n", c);//3.50
return 0;
}
代码中出现的%.2f表示输出类型是浮点数并保留两位小数。
单目操作符
只需要一个操作数的运算符称为单目运算符。
操作符 | 描述 |
---|---|
! | 逻辑反操作 |
- | 负值 |
+ | 正值 |
& | 取地址 |
sizeof | 操作数的类型长度(以字节为单位) |
~ | 对一个数的二进制按位取反 |
-- | 前置、后置-- |
++ | 前置、后置++ |
* | 间接访问操作符(解引用操作符) |
(类型) | 强制类型转换 |
- C语言中0表示逻辑假,非零表示逻辑真。
#include<stdio.h>
int main()
{
int flag = 0;
if (!flag)
{
printf("hello\n");
}
return 0;
}
-
-和+
-是指取相反操作,例如a =10,那么对a 取负值得到-10;b =-9, 那么对b取负值得到9。
#include<stdio.h> int main() { int a = -10; int b = 9; int m = -a; int n = -b; int t = +a; int l = +b; printf("%d %d\n", m,n); printf("%d %d\n", t, l); return 0; }
-
sizeof是操作符,是一个单目操作符
#include<stdio.h> int main() { //输出对应数据的类型长度 int a = 10; printf("%d\n", sizeof(a)); //4 printf("%d\n", sizeof(int));//4 printf("%d\n", sizeof a);//4 //计算整个数组的大小,单位是字节 int arr[10] = { 0 }; printf("%d\n", sizeof(arr)); //40 printf("%d\n", sizeof(arr[0]));//4 printf("%d\n", sizeof(arr)/ sizeof(arr[0])); //10 return 0; }
这里 int arr[10] 表示创建一个名为arr的数组,数组长度为10,数组里面存放的是整型数据。arr[0]表示取出数组arr中的第一个元素。
-
--/++
++可以分为前置++和后置++。后置++是先使用,后++,即我们先初始化a=10,而当把a++赋值给b时,进行如下操作,第一步,把a =10赋值给b,第二步a自加一;前置++是先++,后使用即我们先初始化a=10,而当把++a赋值给b时,进行如下操作,第一步,a自加一,得到a=11,第二步,把a =11赋值给b。
#include <stdio.h> int main() { int a = 10; int b = a++;//后置++,先使用,后++ //int b = a; a++; printf("%d\n", b);//10 int c = 10; int d = ++c;//前置++,先++,后使用 // c=c+1;d=c; printf("%d\n", d); //11 return 0; }
--a 和a--是类似的过程这里不再赘述。
-
强制类型转换
以下是代码示例
# include<stdio.h> int main() { int a = (int)3.14; printf("%d\n", a); return 0; }
3.14 是字面浮点数,编译器默认理解为double类型,这段代码所作的操作是将double类型数据转换为int类型的数据,(类型)就是要转换为什么类型的数据。
关系操作符
> |
---|
>= |
< |
<= |
!= 用于测试“不相等” |
== 用于测试“相等” |
逻辑操作符
&& 逻辑与 |
---|
|| 逻辑或 |
逻辑与 是并且的意思,只有所有条件为真,,逻辑才为真;有一个条件为假,,逻辑为假
逻辑或 是或者的意思,只有所有条件为假,,逻辑才为假;有一个条件为真,,逻辑就为真
# include<stdio.h>
int main()
{
int a = 0; //逻辑假
int b = 1;//逻辑真
if (a && b) //逻辑假
{
printf("hhh\n");
}
if (a || b)//逻辑真
{
printf("aaa\n");
}
return 0;
}
条件操作符
exp1 ? exp2 :exp3 |
---|
条件操作符是有三个操作数,故它是一个三目操作符、
#include <stdio.h>
int main()
{
int a = 10;
int b = 20;
int r = (a < b ? a : b);
printf("%d", r);
return 0;
}
逗号表达式
定义:就是被逗号隔开的一窜表达式
特点:从左向右依次计算,整个表达式的结果是最后一个表达式的结果
exp1 , exp2, exp3 , ..., expN |
---|
#include <stdio.h>
int main()
{
int a = 10;
int b = 20;
int c = 0;
// c=8 a=28 5
int d = (c = a-2,a =b+c,c-3);
printf("%d\n", d);
return 0;
}
下标引用、函数调用和结构成员
[], (), ., -> |
---|
-
[] 下标引用操作符
arr[3]中[] 下标引用操作符,arr和3是[]的操作数
# include<stdio.h> int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; int n = 3; arr[n] = 20;//为数组arr的第四个元素赋值为20 printf("%d\n", arr[n]); return 0; }
-
()函数调用操作符
我们定义求和函数Add,在调用时Add(2,5)时,()是函数调用操作符,Add,2,3都是()的操作数
#include<stdio.h> int Add(int x, int y) { return x + y; } int main() { int sum = Add(2, 5); printf("%d\n", sum);//7 return 0; }
移位操作符
>> | << |
---|
后续补充~
位操作符
& | ^ | | |
---|
后续补充~
赋值操作符
= | += | -= | *= | /= | &= | ^= | |= | >>= | <<= |
---|
后续补充~
下一期更新,关键字、指针、结构体……_
标签:02,10,arr,return,int,C语言,初识,printf,main From: https://www.cnblogs.com/DLChen/p/18229222