| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 初识C语言(2) -> 正文阅读 |
|
[C++知识库]初识C语言(2) |
目录 一.选择语句1.1if语句的使用? ? 选择语句即if语句,if语句在C语言中的使用方法是if(条件),若条件为真,则执行条件下中大括号的代码,若条件为假的,则执行else下大括号中的代码,如下图所示。 ? ? 假如输入的a为160,比100大,则执行第一条语句,输出a比100大。假如输入的a是86,不满足第一条语句执行的条件,则来到第二条else if语句这里,满足第二条语句中比0大比100小的条件,则执行第二条语句。假如输入的a为-10,不满足第一条语句执行的条件,不满足第二条语句执行的条件,则来到else这里,执行else后的 打印a小于等于0。注意,在if选择语句中,if()括号中为判断条件,条件弱真则执行该条件下的语句,假则执行下一条判断语句。()后面不要加分号,若判断语句下,仅跟一条要执行的语句,那么可以不加大括号,如果是多条,则要加大括号。 二.循环语句2.1while循环语句? ?? ? ? while循环语句如上图所示,while() ()里面的是循环判断的条件,若满足这个条件则执行循环,不满足则跳过这个循环。line++;的意思是,执行一遍这个语句,line的值会增加1,和line=line+1;这个语句具有相同的作用。 三.函数3.1先定义函数的情况? ? 函数的作用是简化代码,避免重复使用,避免多段同样功能的代码出现。 ? ? 如上图所示,Add便为一个我们定义的函数,起到了求两个数的和的作用。函数在使用之前需要自己去定义,Add为函数名,括号中的int x,int y用来接收sum=Add(num1,num2)中的num1和num2。num1的值会被赋给x,num2的值会被赋给y。又因为x y均为整型变量,所有用int整型来接收,输出的z也为整型变量,返回值为return z;所以要在Add之前添加int。 3.2后定义函数的情况? ? 如下图所示,部分教科书可能会在主函数后定义函数,这并不是一个好的习惯。倘若用这样定义函数的方法的话,需要对函数先进行声明。int Add(int x,int y);便是对函数的一种声明。但要注意的是声明函数的时候需要在()后面加分号,但在定义函数,写函数的时候,不需要在()加分号。 ? ? ? ? 3.3函数的组成? ? 如下图所示,函数由函数名,函数形式的参数,函数体和返回类型组成。返回类型和return z;那里的返回类型要做到相一致。 ?四.数组4.1数组的定义? ? 数组由数据类型相同的一系列元素组成,在需要数组的时候,可以通过声明数组来告诉编译器数组中内含多少元素和这些元素的类型。普通变量可以使用的类型,数组元素均可以使用,如下图所示,第一个数组为内含365个float类型元素的数组,第二个数组为内含30个char类型元素的数组,第三个数组为内含50个int类型元素的数组。方括号[]代表,arr1 arr2 arr3均为数组,arr1 arr2 arr3分别为数组的名称,方括号中的数字表明数组中的元素个数。???????? 4.2数组的初始化? ? 数组元素的编号是从0开始的,所以例如如下图所示,ch[0]表示ch数组中的第一个元素,ch[5]表示第6个元素,也就是最后一个元素。如这里的printf("%c",ch[0]);这段代码含义即为打印ch这个数组中的第一个元素,即为h。 ? ? ?数组初始化,如下图所示,在数组后要将赋给数组的值用大括号括起来,中间用逗号隔开。将1赋给数组的首元素arr[0],2赋给数组的第二个元素arr[1],以此类推。 ? ? ? ? ? 如上图所示,还可以将字符和字符串赋给数组,这样的数组又称之为字符数组。但要注意的是在将字符串赋给数组的时候,数组的大小需要比字符串的位数多一位,因为双引号中的字符串默认结束时跟着一个\0作为结束建议编译器结束的标志,而\0也是一个字符,在数组中会占一位。所以在将字符串赋给数组时需将数组的大小设置的比字符串的长度多一位。 ? ? 除此之外,还可以给数组部分初始化,如下图所示。当初始化列表中的值少于数组元素的个数时,编译器会把剩余的元素都初始化为0。也就是说,如果不初始化数组,数组元素和未初始化的普通变量一样,其中储存的都是垃圾值。但是如果部分初始化数组,数组剩余的元素就会被初始化为0。 ? ? 如果初始化的元素多余数组元素的个数,会被编译器视为错误! ?五.操作符5.1算术操作符? ? 如下图所示,这五个符号为算数操作符,依次为加 减 乘 除 取余(求模运算符)。加减乘除便是数学中四则运算的加减乘除,最后一个%的含义为取余,意为两个整除做除法运算,得到余数。 ? ?? ? ? 如上图这段代码 7%2的意思为得到7除以2的余数1,printf函数打印出来n的值便为1。值得注意的是取余(求模运算符只能用于整数,不能用于浮点数)。 5.2移位操作符? ? 移位操作符的含义是移动该数字在计算机内存中储存形式(二进制位),以左移位例,就是把二进制位整体向左移动,例如整型变量 int a=3;在计算中的存储形式位00000000000000000000000000000011,对其进行左移一位操作如下图所示,得到的b在计算机内存形式位00000000000000000000000000000110,转换成十进制为即位6,所以printf("%d\n",b);这个语句输出b的值为6。 ? ? ?5.3位操作符? ? 位操作符如下图所示,分为&按位与,^按位异或,|按位或,三种操作符。 ? ? &按位与的含义为比较两个数在内存中存储的二进制位,同为1为1,有0则为0,所以3&5运算的结果为1。 ? ?? ? ? |按位或的含义为比较两个数在内存中存储的二进制位,有1则为1,全0则为0,所以3|5运算的结果为7. ? ? ? ? ? ?^按位异或的含义为比较两个数在内存中存储的二进制位,相同则为0,不同则为1,所以3^5运算的结果为6。 ? ?5.4赋值操作符? ? 常用的赋值操作符如下图所示,含义依次为下。 ? ? =:赋值,将等号右边边的值赋值给左边。 ? ? +=?:加等于a+=1;a=a+1;a++;这三条语句的含义相同。 ? ? -=:减等于a-=1;a=a-1;a--;这三条语句的含义相同。 ? ? *=: 乘等于 a*=2;和a=a*2;这两条语句的含义相同。 ? ? /=:除等于 a/=2;和a=a/2;这两条语句的含义相同。 ? ? &=:先进行按位与的计算,然后赋值。 ? ? ^=:先进行按位异或的计算,然后赋值。 ? ? |=:先进性按位或的计算,然后赋值。 ? ? >>=:先进行右移位,然后赋值。 ? ? <<=:先进性左移位,然后赋值。? ? ? ? ?5.5单目操作符? ? 单目操作符即为只有一个操作数的操作符。 ? ? !为逻辑反操作,如!=的意思为不等于,而==的意思为等于。?如下图所示,C语言中0为假,1为真,int a=0; printf("%d\n",!a);这两条语句打印的结果为1,因为!0是逻辑反操作,a本来为0是假,!a是将a变为真的意思,即a的值会变为1,所以打印输出的值便为1了。 ? ? &符号的意思为取地址,即在输入一个数的时候,例如scanf("%d",&a);,这条语句的含义即为输入一个整型的数字,将该数字的值存放为变量a中,&a在这里就起到了取地址的作用。 ? ? 如下图所示,sizeof的用途为 计算的是变量或类型所创建变量占据内存的大小,单位是字节,如a为整型变量,大小是4个字节。int为整型类型,大小为4个字节。10为整数,整形数据,大小为4个字节。 ? ? ~的含义为按位取反,这里的按位意思是按二进制位,对存在内存中的补码进行取反操作。在内存中,数据是以二进制形式存放,内存中存储的是二进制的补码。 ? ? 如下图所示,-1的源码为10000000000000000000000000000001,这里第一位的1的意思为负数,0的话便是整数。 ? ? 源码变反码的操作是,正数的源码不变即为反码,负数的源码首位不变,其它位取反,1变为0,0变为1.所以-1的反码是11111111111111111111111111111110。 ? ? 正数的补码就是其本身,负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)。所以最后对-1按位取反的结果是0。 ? ? ? ++ --在C语言中分为前置++ -- 后置++ --,前置的区别是先增加,再进行其他运算,如下图所示?int a=10;int b=++a;,这样计算出来的结果是b=11 a=11。 假如把这个的++a改为a++,则为先进行赋值操作,然后a再自增1,所以结果是b=10,a=11。这就是前置和后置的根本区别,--与++同理。 ? ? ? ? ? ?强制类型转化,强制类型转化即在某一个数前写(),括号中是要强制转化的类型,如下图便是把3.14转化为整型,这样3.14这个浮点数会被转化为3这个整型,最好n得到的赋值便是3了。 ?5.6关系操作符? ? 下图的关系操作符的含义分别为。 ? ? > 大于。 ? ? >=? 大于等于。 ? ? < 小于。 ? ? <= 小于等于。 ? ? != 不等于。 ? ? == 等于(注意区分 一个等号=是赋值运算符,两个等号==才是数学中等于的符号)。 ? ? ? ?5.7逻辑操作符? ? 如下图所示,&&的含义为逻辑与,即一般含义中和的意思,意为两个条件要同时满足。例如在if语句中判断a大于0,小于等于100满足条件时候,if(a>0&&a<=100)这样才是正确的写法,含义是两个条件必须同时满足才会执行if后面大括号中的语句。 ? ? ||的含义为逻辑或,意为两个条件满足之一就可以。例如在if语句中判断,a小于0或者a大于100满足条件的时候,if(a<0||a>100)这样才是正确的写法,含义是满足a小于0 a大于100二者之一便可以执行if后面大括号中的语句。 ?5.8条件操作符? ? 条件操作符又被称作为三目运算符,对于条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为真,则计算x的值,运算结果为x的值;如果b的值为假,计算y的值,运算结果为y的值。 ? ? ?如上图所示,三目操作符可以用来简化if条件语句,例如判断a b两个变量的大小,取其最大值,可以用max=(a>b?a:b);这样的语句,意为a大于b吗,如果大于,输出a的值赋值给max。如果不大于,输出b的值赋值给max,这样就起到了简化代码的作用。 5.9逗号表达式? ?逗号表达式的形式如下图所示。整个逗号表达式会从左到右以此计算,整个逗号表达式的结果是最后一个表达式的结果。如int d=(a+2,b=a-3,c=b+4); 会从左到右先计算a+2,然后将a-3的值赋值给b,最后将b+4的值赋值给c,再将c的值赋值给d。 ? ?? ?六.常见关键字? ? ? ? ? ? ?常见关键字如上图所示,值得注意的是现在cpu一般会先在寄存器中取值,假如寄存器中找不到寄存器需求的值,便会到告诉缓存中取值,假如还找不到,便会取内存中取值。这个金字塔从下到上,运行读取速度越来越快,造价越来越高,空间越来越来。如下图所示在C语言中,我们还可以用 register int a=10;这样的形式取建议编译器定义寄存器变量,好处是寄存器变量相比于普通存储在内存中的变量,读取运行的速度更快,有利于提高程序运行的速度。但register只是起到建议的作用,是否真正定义了寄存器变量由编译器根据这个变量是否经常出现,是否常使用等一系列标准进行评估,最终决定是否定义寄存器变量。 ? ?? |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:43:40- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |