# C语言学习记录
日期: 8.7
## 📖今日知识点 ——选择语句
## 💻练习代码
#include<stdio.h>
//int main()
//{
// int input = 0;
// printf(“加入学习小组\n”);
// printf(“要好好学习吗(1/0)?>:”);
// scanf(“%d”,&input);
// if(input == 1)
// printf(“好工作\n”);
// else
// printf(“混子\n”);
// return 0;
//}
📖今日知识点 ——循环语句
💻练习代码
int main()
{
int line = 0; printf("写代码\n"); //循环语句 while(line<30000) { printf("写代码:%d\n",line); line++; } if(line == 30000) { printf("good\n"); } return 0;}
📖今日知识点 ——函数与数组
函数:
数组:
💻练习代码
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); //int sum = num1 + num2; //函数的方式解决 int sum = Add(num1,num2); printf("%d\n",sum); return 0;}
int main()
{
// int a = 1;
// int b = 2;
// int c = 3;
// int d = 4;
//... //数组 -- 一组相同类型的元素的集合 //10个整数1~10存起来 //数组通过下标访问,arr[0]表示第一个数组 int arr[10] = {1,2,3,4,5,6,7,8,9,10}; int i = 0; while (i < 10) { printf("%d",arr[i]); i++; } char ch[5] = {'a','b','c'};//不完全初始化,剩余的默认为0。数组下标从0开始 return 0;}
📖今日知识点 ——操作符
操作符
| 算术操作符 | +、-、*、%、/ |
|---|---|
| 移位操作符 | >>、<< |
| 位操作符 | &(按位与) 、^(按位异或)、 |
| 赋值操作符 | =、+=、-=、*=、/=、&=、^=、 |
| 单目操作符 | !、-、+、&、sizeof、~… |
| 关系操作符 | >(大于)、>=(大于等于)、<、<=、!=、== |
| 逻辑操作符 | &&(逻辑与,两个为真才为真)、 |
| 条件操作符(三目操作符) | exp1 ? exp2 : exp3 |
| 逗号表达式 | exp1,exp2,exp3,…expN |
| 下标引用、函数调用和结构成员 | []、()、.、-> |
| 单目操作符 | |
|---|---|
| ! | 逻辑反操作 |
| - | 负值 |
| + | 正值 |
| & | 取地址 |
| sizeof | 操作数的类型长度(以字节为单位) |
| ~ | 对一个数的二进制按位取反 |
| – | 前置、后置– |
| ++ | 前置、后置++ |
| * | 间接访问操作符(解引用操作符) |
| (类型) |
移位操作符
赋值操作符
(单目操作符)
💻练习代码
(算术操作符、移位操作符和赋值操作符)
//int main()
//{
// int b = 9 / 2;
// float a = 9 / 2.0;
//int a = 9 % 2;//% – 取模(余) 余1
// printf(“%d\n”,b);
// printf(“%f\n”,a);
// printf(“%d\n”,a);
// int a = 2;
// int b = a << 1;//左移,2转为二进制–>10(int占4字节,一个字节8bit,4*8=32,要补全32位)–> 00000000000000000000000000000010,左移一个0,最右边补一个0就是00000000000000000000000000000100–>转为十进制为4
// printf(“%d\n”,b);
// int a = 2;
// a = a + 5;//赋值 等于 a += 5;
// a = a - 3;//等于 a -= 3;
// a = a % 3;//等于 a %= 3;
// return 0;
//}
单目操作符
int main()
{
//a + b,+有两个操作数,双目操作符 //单目操作符:只有一个操作符 //0表示假,非0表示真// int a = 0;
// printf(“%d\n”,!a);//1
// if(a)
// {
// //如果a为真,做什么事
// }
// if(!a)
// {
// //如果a为假,做什么事
// }
//sizeof是一个操作符,不是函数,是计算类型或者变量的大小的// int a = 10;
// printf(“%d\n”,sizeof(int));//求类型的时候不能省括号
// printf(“%d\n”,sizeof a);//求变量的时候可以省括号
//10*4=40,其中10个数,每个数是int,为4字节 int arr[10]= {0}; printf("%d\n",sizeof(arr));//计算的是数组的总大小,单位是字节 printf("%d\n",sizeof(arr[0]));//4,算的是第一个数组类型的大小 int sz = sizeof(arr) / sizeof(arr[0]); printf("%d\n",sz); return 0;}
//操作符,按(二进制)位取反,把所有二进制位中数字,1变成0,0变成1。(整数a=0的二进制为0000000000000000000000000000000(4*8=32),a=111111111111111111111111111111111(补码)再转成原码10000000000000000000000000000001第一个为符号位,1为负,0为正
int main()
{
int a = 0; printf("%d\n",~a); return 0;}
//int main()
//{
// int a = 10;
// int b = ++a;//前置++
// printf(“%d\n”,b);
// printf(“%d\n”,a);
// return 0;
//}
int main()
{
int a = 10; int b = a++;//后置++,先使用,后加加 printf("%d\n",b);//10 printf("%d\n",a);//11 return 0;}
//强制转化
int main()
{
int a = (int)3.14;//将浮点数强制转化为整数 printf("%d\n",a); return 0;}
//逻辑与、逻辑或
//int main()
//{
// int a = 2;
// int b = 3;
// int c = a && b;
// printf(“%d\n”,c);//1
// int a = 0;
// int b = 3;
// int c = a && b;
// printf(“%d\n”,c);//0
// int a = 0;
// int b = 0;
// int c = a && b;
// printf(“%d\n”,c);//0
// int a = 0;
// int b = 0;
// int c = a || b;
// printf(“%d\n”,c);//0
// int a = 0;
// int b = 1;
// int c = a || b;
// printf(“%d\n”,c);//1
// int a = 7;
// int b = 1;
// int c = a || b;
// printf(“%d\n”,c);//1
// return 0;
//}
//条件操作符(三目操作符)
//exp1 成立,exp2 计算,整个表达式的结构是:exp2的结果
//exp1 不成立,exp3 计算,整个表达式的结构是:exp3的结果
int main()
{
int a = 0; int b = 3; int max = 0;// if(a > b)
// max = a;
// else
// max = b;
max = a > b ? a : b; printf("%d\n",max); return 0;}
//逗号表达式
int main()
{
//(2,4 + 5,6); int a = 0; int b = 3; int c = 5; int d = (a=b+2,c= a-4,b=c++);//逗号表达式,是从左向右依次进行计算的,整个表达式的结果是最后一个表达式的结果 printf("%d\n",d); return 0;}
//下标引用操作符
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9}; printf("%d\n",arr[5]); return 0;}
//函数调用操作符
int main()
{
//调用函数的时候,函数名后边的()就是函数调用操作符 printf("hehe\n"); printf("%d",100); return 0;}