栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

初识c语言02

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

初识c语言02

目录

6选择语句

7循环语句

8函数

9数组

10操作符

算术操作符

移位操作符

移位操作符

位操作符

赋值操作符

单目操作符

逻辑操作符

关系操作符

逻辑操作符

条件操作符

逗号表达式

下标引用、函数调用和结构成员

11常见关键字


6选择语句
 

if
switch

#include 

int main()

{

       int coding = 0;

       printf("你会去敲代码吗?(选择1 or 0):>");

       scanf("%d", &coding);

       if (coding == 1)

       {

               printf("坚持,你会有好offern");

       }

       else

       {

               printf("放弃,回家卖红薯n");

       }

       return 0;

}

7循环语句

有些事情必须日复一日的去做
终身学习
有效代码2w行! 注意是有效代码
while
for
do while

int main()

{

       printf("加入比特n");

       int line = 0;

       while (line <= 20000)

       {

               line++;

               printf("我要继续努力敲代码n");

               //printf("%dn", line);

       }

       if (line > 20000)

               printf("恭喜你找到好offern");

       else

       {

               printf("火候还不够n");

       }

       return 0;

}

8函数

main函数-主函数
什么是函数呢
f(x)=cx+b
f(x,y) =x+y

c语言中,把一些独立的功能封装成一个函数

int main()

{

       int num1 = 0;

       int num2 = 0;

       int sum = 0;

       printf("输入两个操作数:>");

       scanf("%d %d", &num1, &num2);

       sum = num1 + num2;

       printf("sum = %dn", sum);

       return 0;

}

int Add(int x, int y) 

{

       int z = x + y;

       return z;

}

int main()

{

       int num1 = 0;

       int num2 = 0;

       int sum = 0;

       printf("输入两个操作数:>");

       scanf("%d %d", &num1, &num2);

       //scanf 中格式串怎么写的,就必须怎么输入

       sum = Add(num1, num2);

       printf("sum = %dn", sum);

       return 0;

}

把函数想象成一个工厂
原材料-->工厂(加工)-->产品
输入参数-函数运算-返回结果
num1,num2--Add--sum
返回类型,函数名,函数的形式参数,函数体
如果函数定义在main后面,需要在main前声明

9数组

一组相同类型元素的集合
int a=1;
int b=2;
int c=3;
...
存1-1000呢?

int main()

{

       int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };//定义一个整形数组,最多放10个元素

       //存字符 - 字符数组

       char ch1[3] = { 'a','b','c' };

       char ch2[6] = "hello";

       //hello 后面还有一个''

       //最好初始化

       int arr1[10];

       printf("%dn", arr1[0]);

       //vs2019 数组未初始化 不会报错

       

       //不完全初始化

       //int arr[10] ={ 0 };

       return 0;

}

数组下标从0开始,c标准规定
通过下标定位数组元素

int main()

{

       int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };

       int i = 0;

       while (i<=9)

       {

               printf("%d ", arr[i]);

               i++;

       }

       return 0;

}

10操作符

算术操作符
      • / %
        %操作符只能作用于整数
        %取模(取余)操作符
        7%2 商3余1
int main()

{

       //int n = 7.0 % 2;  //非法了

       //%只能作用于整型

       return 0;

}

7.0/2
/两端只要有小数,就是执行浮点数除法

移位操作符

int a = 3;
3的二进制位
00000000000000000000000000000011
32 位

移位操作符
>> <<

左移把二进制位向左移动,有×2的效果

位操作符

这里的位也是指的二进制位

&

按位与
对应二进制位同时为1才是1,只要有0就是0

^

按位异或
对应二进制位相同为0,不同为1

int main()

{

       int a = 3;

       int b = 5;

       int c = a ^ b;

       //c:   00000000000000000000000000000110

       printf("%dn", c);

       return 0;

}

|

按位或
对应二进制位有1则为1,全0才是0

int main()

{

       int a = 3;

       int b = 5;

       int c = a & b;

       //3:

       //00000000000000000000000000000011

       //00000000000000000000000000000101

       //00000000000000000000000000000001

       //同时为1才是1,只要有0就是0

       printf("%dn", c);

       return 0;

}

赋值操作符

= += -= *= /= &= ^=  |=    >>=   <<=

+= 复合赋值符
复合赋值符写起来更方便
再懒一点 直接写a++

单目操作符

+是双目操作符 有2个操作数 a+b
单目操作符 只有一个操作数

!

逻辑反操作

int main()

{

       int c = 10;

       printf("%dn", !c);  //0

       return 0;

}

c语言中0表示假,非0表示真
运算符就是操作符,英文翻译结果不一样而已

+

-

&

取地址符号

sizeof

sizeof是一个操作符,不是函数!!!
用来计算变量大小
int a=10;在内存中创建了一个a变量
sizeof(a) 结果为4
计算的是变量或者类型所创建变量占据内存的大小--单位是字节

int main()

{

       int a = 10;

       printf("%dn", sizeof(a));//4

       printf("%dn", sizeof(int));//4

       //计算的是变量或者类型所创建变量占据内存的大小--单位是字节

       printf("%dn", sizeof(10));//4

       //3+4 的结果是7 类型是int

       return 0;

}

~

按2进制位取反
对存在内存中的补码进行取反

int main()

{

       int a = -1;

       //-1是负整数

       //负整数的二进制有原码,反码,补码

       //内存中存储的是二进制的补码

       //10000000000000000000000000000001   -原码

       //11111111111111111111111111111110   -反码

       //11111111111111111111111111111111   -补码

       //00000000000000000000000000000000   -取反

       int b = ~a;

       printf("%dn", b);

       return 0;

}

++/--

++a 前置++先++后使用

//int main()

//{

//     int a = 10;

//     int b = ++a;

//     printf("%dn", b);

//     printf("%dn", a);

//     

//     return 0;

//}

int main()

{

       int a = 10;

       int b = a++;

       //后置++ 先使用 后++

       printf("%dn", b);

       printf("%dn", a);



       return 0;

}

对于自定义类型,前置++效率更高

int main()

{

       int a = 10;

       int b = a--;

       //先使用后--

       printf("%dn", b);//10

       printf("%dn", a);//9



       return 0;

}

*

解引用操作符/间接访问操作符

(类型)

强制类型转换

int main()

{

       int n = 3.14;

       printf("%dn", n);



       return 0;

}

warning 从double转换到int 可能丢失数据
使用强制类型转换即可

int main()

{

       int n =(int) 3.14;

       printf("%dn", n);



       return 0;

}

逻辑操作符
int main()

{

       int a = 3;

       int b = 5;

       if ((a == 3) || (b == 3))

       {

               printf("hehen");

       }

       return 0;

}

关系操作符
>
>=
<
<=
!=
==
逻辑操作符

&& 逻辑与
|| 逻辑或

条件操作符

exp1 ? exp2 : exp3

//int main()
//{
//      //exp1 ? exp2 : exp3
//      //简化if语句
//      int a = 0;
//      int b = 0;
//      int max = 0;
//      scanf("%d %d", &a, &b);
//      if (a > b)
//              max = a;
//      else
//              max = b;
//      printf("max is %dn", max);
//      return 0;
//}


int main()
{
        //exp1 ? exp2 : exp3
        //简化if语句
        int a = 0;
        int b = 0;
        int max = 0;
        scanf("%d %d", &a, &b);
        max = a > b ? a : b;
        //三目操作符
        printf("max is %dn", max);
        return 0;
}

逗号表达式
//int main()

//{

//     int a = 3;

//     int b = 5;

//     int c = 10;

//     //逗号表达式会从左向右依次计算,整个逗号表达式结果是最后一个表达式结果

//

//     int d = (a + 2, b = a - 3, c = b + 4);

//     printf("%dn", d);//b为0 0+4=4

//     printf("%dn", b);//**b的值发生了改变 0**

//

//     return 0;

//}

下标引用、函数调用和结构成员

arr[4]

[]下标引用操作符
2个操作数,一个是arr 一个是4 数组名和下标

()函数调用操作符
Add(3,5);
函数在调用时,必须有() 操作数是函数名Add,3,5
操作数不固定,可多可少

.
->

11常见关键字

auto-自动-定义自动变量,自动创建空间自动销毁
auto int a=0;
所有的局部变量本身都是auto

char
short
int
long
float
double

break-终止-用于循环中 while for do-while switch
continue-继续-用于循环,退出本次循环
case-swtich
default 默认
do
else
for
if
go to
while

const-常属性-修饰变量,修饰指针
extern-声明外部符号

register-寄存器关键字/建议性命令,不是强制的,需要cpu自己考虑是否使用


越往上,速度越快,空间越小,造价越高
高速缓存几十M
早期时,没有高速缓存什么的
cpu的处理速度和内存的读写速度差不多,后来cpu处理速度越来越快,但内存读写速度跟不上,就出现了高速缓存,寄存器
CPU-中央处理器
寄存器 eax ebx ecx edx esp ebp
注意! 寄存器变量不能取地址
return 返回,在函数中使用

signed-有符号的-修饰类型
unsigned-无符号的

void-无,空-函数返回类型,函数参数,修饰指针
volatile
c语言中可以自定义的类型:
enum-枚举
struct-结构体
union-联合体

sizeof
typedef-类型重定义

typedef unsigned int u_int;

int main()

{

       unsigned int num1 = 100;

       u_int num2 = 100;

       return 0;

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/347551.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号