当前位置: 首页 > news >正文

网站 筛选功能好的seo平台

网站 筛选功能,好的seo平台,织梦资源网模板,个人开发者1. 操作符的分类 算术操作符: - * / % 移位操作符: 位操作符: | ^ 赋值操作符: - 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引用、函数调用和结构成员 2. 算术操作符 - * / % 注意 /操作符: 对于整型的除法运算结果依然是整数… 1. 操作符的分类 算术操作符: - * / % 移位操作符: 位操作符: | ^ 赋值操作符: - 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引用、函数调用和结构成员 2. 算术操作符 - * / % 注意 /操作符: 对于整型的除法运算结果依然是整数 对于浮点型的除法是, 如果有一个是浮点型, 结果就是浮点型 #include stdio.hint main() {int a 7 % 2;//7/2...1int b 7 / 2;printf(%d\n, a);//1printf(%d\n, b);//1return 0; } //% 取模操作符的两端必须是整数 3. 移位操作符 移位操作符: 移动的是二进制位 左移操作符 右移操作符 注: 移位操作符的操作数只能是 整数 关于计算机中的 进制 对于整数的二进制表示有3种: 原码, 反码, 补码. 如果是正的整数, 它的原码、反码、补码要相同 如果是负的整数, 它的原码、反码、补码是要计算的. 比如数字7. 0000 0000 0000 0000 0000 0000 0000 0111 - 原码 0000 0000 0000 0000 0000 0000 0000 0111 - 反码 0000 0000 0000 0000 0000 0000 0000 0111 - 补码 数字-7 1000 0000 0000 0000 0000 0000 0000 0111 - 原码 1111 1111 1111 1111 1111 1111 1111 1000 - 反码 原码的符号位不变其他位按位取反就是反码 1111 1111 1111 1111 1111 1111 1111 1001 - 补码 反码1就是补码 整数在内存中存储的是补码. 3.1 左移操作符的使用 int main() {int a 7;int b a 1;printf(a%d\n, a);printf(b%d\n, b);return 0; } 运行结果: 下面是a为负数的情形, 以int a -7;为例: 注: 移位操作符只能用在整数. 3.2 右移操作符的使用 右移操作符分为两种: 算术移位和逻辑移位. 算术移位: 右边丢弃, 左边补原符号位; 逻辑移位: 右边丢弃, 左边补0. int main() {int a 7;int b a 1;printf(a%d\n, a);printf(b%d\n, b);return 0; } VS2019采用算术右移. 下面是a为负数的情形, 以int a -7;为例: 注意: 对于移位运算符不要移动负数位这个是标准未定义的。 4. 位操作符 - 按2进制位与 | - 按2进制位或 ^ - 按2进制位异或 - 相同为0相异为1 int main() {int a 3;int b -5;int c a b;int d a | b;int e a ^ b;printf(c%d\n, c);printf(d%d\n, d);printf(e%d\n, e);return 0; } 0000 0000 0000 0000 0000 0000 0000 0011 - 3的补码 1000 0000 0000 0000 0000 0000 0000 0101 - -5的原码 1111 1111 1111 1111 1111 1111 1111 1010 - -5的反码 1111 1111 1111 1111 1111 1111 1111 1011 - -5的补码 于是: 1111 1111 1111 1111 1111 1111 1111 1011 - -5的补码 0000 0000 0000 0000 0000 0000 0000 0011 - 3的补码 0000 0000 0000 0000 0000 0000 0000 0011 - 运算 1111 1111 1111 1111 1111 1111 1111 1011 - -5的补码 0000 0000 0000 0000 0000 0000 0000 0011 - 3的补码 1111 1111 1111 1111 1111 1111 1111 1011 - |运算 - 补码 1111 1111 1111 1111 1111 1111 1111 1010 - 反码 1000 0000 0000 0000 0000 0000 0000 0101 - 原码 1111 1111 1111 1111 1111 1111 1111 1011 - -5的补码 0000 0000 0000 0000 0000 0000 0000 0011 - 3的补码 1111 1111 1111 1111 1111 1111 1111 1000 - ^运算 - 补码 1111 1111 1111 1111 1111 1111 1111 0111 - 反码 1000 0000 0000 0000 0000 0000 0000 1000 - 原码 不能创建临时变量第三个变量实现两个数的交换。 原来我们允许创建临时变量的时候可以这么实现两个数的交换: int main() {int a 3;int b 5;int c 0;printf(交换前a%d b%d\n, a, b);c a;a b;b c;printf(交换后a%d b%d\n, a, b);return 0; } 那么要满足题意的代码如下: int main() {int a 3;int b 5;//这种方法会有溢出的问题printf(交换前a%d b%d\n, a, b);a a b;b a - b;a a - b;printf(交换后a%d b%d\n, a, b);return 0; } 但是, 理论上讲, 这种方法会出现问题. a是int类型, 而int类型又有它自己的最大值, b也是int类型, 有它自己的最大值. 那么它们就有自己的上限. 假设a放的值非常大, 但是没有超出它的最大值, b也是一样, 此时ab的和就会超出最大值, 再赋给a就有可能不是真正的a了, a就会栈溢出, 导致后续的运算结果出错. 我们来看最没有问题的代码: int main() {int a 3;int b 5;printf(交换前a%d b%d\n, a, b);a a ^ b;//a3^5b a ^ b;//3^5^5 -- b3a a ^ b;//3^5^3 -- a5printf(交换后a%d b%d\n, a, b);return 0; } 注意这里使用了异或运算符的特点. 3^3 0 - a^a0 任何数和它本身异或, 结果是0. 011 011 000 0^55 - 0^a a 任何数和0异或都是它本身. 000 101 101 3^3^5 5 3^5^3 5 异或操作符支持交换律 011 101 3^3 110 011 3^3^5 101 求一个整数存储在内存中的二进制中1的个数 翻译题意就是: 求补码的二进制中1的个数 比如int a 3; 它的二进制为00000000000000000000000000000011 我们进行a1操作 00000000000000000000000000000011 00000000000000000000000000000001 结果 00000000000000000000000000000001 可以知道, 可以通过1的方式来得到一个数的二进制位的最后一位是什么. 31得到的结果是1, 说明他的最低位是1. 那么当我们统计完这最后一位是什么之后, 我们可以通过右移来让每一位都来到最低位, 然后再通过1的方式来得到一个数的二进制位的最后一位是什么, 这样就能得到二进制位1的个数 #include stdio.h int main() {int num -1;int i 0;int count 0;//计数for(i0; i32; i){if( num (1 i) )count;}printf(二进制中1的个数 %d\n,count);return 0; } 5. 赋值操作符 赋值操作符可以更新变量的数据, 并且它是可以连续使用的, 但是不建议写连续赋值的代码. int b 0; b 20;//赋值int a 10; int x 0; int y 20; a x y1;//连续赋值 复合赋值符 - * / % | ^ int a 3; a a 5; a 5;a a 1; a 1; 6. 单目操作符 在C语言中单目操作符是只对一个操作数进行操作的操作符而双目操作符是对两个操作数进行操作的操作符。 举个例子单目操作符包括取地址操作符 用于获取变量的地址、递增操作符 用于增加变量的值、递减操作符 --用于减少变量的值等等。这些操作符只需要一个操作数。 双目操作符包括加法操作符 、减法操作符 -、乘法操作符 *、除法操作符 /等等。这些操作符需要两个操作数来执行相应的操作。 例如 a是一个单目操作符它将变量 a的值递增1。而 a b是一个双目操作符它将变量 a和 b的值相加。 ! 逻辑反操作 - 负值正值取地址 sizeof 操作数的类型长度以字节为单位 ~ 对一个数的二进制按位取反 -- 前置、后置--前置、后置 * 间接访问操作符(解引用操作符) (类型) 强制类型转换 //! 逻辑反操作 //C语言中0表示假非0表示真int flag 3; //flag为真,进入if if (flag) {} //flag为假,进入if if(!flag) {} // 取地址int a 10; printf(%p\n, a); int* p a;//p就是指针变量 //sizeof 操作数的类型长度以字节为单位 //计算的是变量所占内存空间的大小,单位是字节 //计算类型所创建的变量占据空间的大小,单位是字节 int arr[5] {0}; printf(%d\n, sizeof(arr));//20int a 10; //int n sizeof(a);//计算的是a所占内存的大小单位是字节 int n sizeof(int); printf(n%d\n, n);//4 //~ 对一个数的二进制按位取反 int a 0; //0000 0000 0000 0000 0000 0000 0000 0000 - 补码 //1111 1111 1111 1111 1111 1111 1111 1111 - ~a //1111 1111 1111 1111 1111 1111 1111 1110 - -1得到反码 //1000 0000 0000 0000 0000 0000 0000 0001 - 再按位取反得到原码 //-1 printf(%d\n, ~a);//-1int b 3; //0000 0000 0000 0000 0000 0000 0000 0011 //1111 1111 1111 1111 1111 1111 1111 1100 - 补码 //1111 1111 1111 1111 1111 1111 1111 1011 - 反码 //1000 0000 0000 0000 0000 0000 0000 0100 - 原码 //-4 printf(%d\n, ~b); //* 间接访问操作符(解引用操作符) int a 10; int* p a; *p 20; printf(%d\n, a); //(类型) 强制类型转换 int a (int)3.14; int main() {int a 0;printf(%d\n, sizeof(a));printf(%d\n, sizeof(int));printf(%d\n, sizeof a);//ok//printf(%d\n, sizeof int);//errreturn 0; } sizeof是操作符不是函数 strlen是库函数是用来求字符串长度 7. 关系操作符 关系操作符是用于比较两个值之间的关系的C语言操作符。它们通常返回一个布尔值真或假表示比较的结果。 ! 用于测试“不相等”用于测试“相等” 注意: 在编程的过程中 和不小心写错导致的错误。 int a 5; int b 10;if (a b) {// 执行这个代码块因为a小于bprintf(a小于b\n); } else {// 如果条件不成立执行这个代码块printf(a不小于b\n); } 在上述示例中是一个关系操作符用于比较变量a和b的值根据比较结果执行不同的代码块。 if (abc abcdef)//这样写是在比较2个字符串的首字符的地址 {} //两个字符串比较相等应该使用strcmp 8. 逻辑操作符 逻辑操作符是用于在布尔表达式中执行逻辑运算的C语言操作符。它们通常用于组合多个条件以生成更复杂的条件。 逻辑与AND当两个条件都为真时返回真1否则返回假0。||逻辑或OR当至少一个条件为真时返回真1只有两个条件都为假时才返回假0。!逻辑非NOT对一个条件取反如果条件为真则返回假0如果条件为假则返回真1。 int x 5; int y 10;if (x 10 y 5) {// 执行这个代码块因为x小于10且y大于5printf(x小于10且y大于5\n); }if (x 10 || y 5) {// 执行这个代码块因为x大于10或y小于5printf(x大于10或y小于5\n); }if (!(x 10)) {// 执行这个代码块因为对x 10 取反得到假printf(x不小于10\n); } 在上述示例中和||是逻辑操作符用于组合不同的条件以便在if语句中执行不同的代码块。而!操作符则用于取反一个条件。 左边为假右边就不计算了 || 左边为真右边就不计算了 9. 条件操作符 条件操作符也称为三元运算符是C语言中的一种特殊操作符用于在一个表达式中根据条件的真假选择不同的值。条件操作符具有以下语法形式 condition ? expression_if_true : expression_if_false condition 是一个条件表达式如果它的值为真非零则返回 expression_if_true 的值否则返回 expression_if_false 的值。 例如: int x 10; int y 20; int max;// 使用条件操作符选择最大值 max (x y) ? x : y;// 等效的 if-else 语句 /* if (x y) {max x; } else {max y; } */printf(最大值是%d\n, max); 在上述示例中条件操作符 (x y) ? x : y 用于比较 x 和 y 的值如果 x 大于 y则选择 x 作为最大值否则选择 y。这是一种紧凑的方式来根据条件选择不同的值。 10. 逗号表达式 逗号表达式是C语言中的一种特殊表达式它允许你在一个表达式中使用逗号 , 来分隔多个子表达式并按顺序依次计算这些子表达式最终返回最后一个子表达式的值。逗号表达式的一般形式如下 expression1, expression2, expression3, ..., expressionN 逗号 , 用于分隔不同的子表达式。所有子表达式会按照从左到右的顺序依次计算。逗号表达式的最终值是最后一个子表达式的值。 逗号表达式通常用于一些特定的情况例如在 for 循环的表达式部分或者在需要在一个语句中执行多个操作并返回最后一个操作结果的情况下。 以下是一个示例 int x 5, y 10, z;z (x, y, x y); // 逗号表达式计算x然后y最后计算x y将结果赋给zprintf(x %d, y %d, z %d\n, x, y, z); 在上述示例中逗号表达式 (x, y, x y) 先计算 x 和 y然后计算 x y最后将结果赋给变量 z。在输出中x 和 y 的值都增加了而 z 的值是 x y 的结果。 11. 下标引用、函数调用和结构成员 11.1 下标引用操作符 下标引用操作符是用于访问数组和其他类似数据结构的元素的操作符。在C语言中下标引用操作符采用方括号 [] 来实现。它允许您通过指定元素的索引来访问数组中的特定元素。 下标引用操作符的一般形式如下 array[index] array 是数组的名称或指向数组的指针。index 是要访问的元素的索引通常是一个整数表达式。 例如考虑以下示例 int numbers[5] {1, 2, 3, 4, 5};// 使用下标引用操作符访问数组元素 int thirdNumber numbers[2]; // 访问索引为2的元素即第三个元素 在上述示例中numbers[2] 使用下标引用操作符访问了数组 numbers 中索引为2的元素即值为3的元素。这样thirdNumber 变量就被赋值为3。 需要注意的是C语言中的数组索引通常从0开始因此第一个元素的索引是0第二个元素的索引是1以此类推。 11.2 函数调用操作符 函数调用操作符是一种特殊的操作符用于调用函数并传递参数给它。在C语言中函数调用操作符采用圆括号 () 来表示用于标识函数的名称以及传递给函数的参数列表。 函数调用操作符的一般形式如下 function_name(arguments) function_name 是要调用的函数的名称。arguments 是传递给函数的参数列表可以是零个或多个参数用逗号 , 分隔。 例如考虑以下示例 #include stdio.h// 声明一个函数 int add(int a, int b) {return a b; }int main() {int result;// 调用函数add并传递两个参数result add(5, 3);printf(5 3 %d\n, result);return 0; } 在上述示例中函数调用操作符 (5, 3) 用于调用 add 函数并传递两个参数 5 和 3 给该函数。add 函数计算它们的和并将结果返回给 result 变量。然后printf 函数用于打印结果。 函数调用是C程序中的重要部分它使您能够执行各种任务包括数据处理、输入输出、数学计算等。函数的名称和参数列表定义了您要执行的操作。 11.3 访问一个结构的成员 要访问一个结构的成员需要使用成员访问操作符 .点号来引用结构变量的成员名称。结构成员访问操作符的一般形式如下 structure_variable.member_name structure_variable 是包含要访问成员的结构变量的名称。member_name 是要访问的结构成员的名称。 以下是一个示例 #include stdio.h// 定义一个结构 struct Point {int x;int y; };int main() {// 声明一个结构变量并初始化struct Point p1;p1.x 10;p1.y 5;// 访问结构成员并打印它们的值printf(p1.x %d\n, p1.x);printf(p1.y %d\n, p1.y);return 0; } 在上述示例中我们首先定义了一个名为 Point 的结构该结构有两个成员 x 和 y。然后在 main 函数中我们声明了一个名为 p1 的结构变量并分别使用成员访问操作符 . 来设置和访问结构的成员 x 和 y 的值。 通过这种方式可以有效地组织和操作数据将相关的数据项存储在一个结构中并使用成员访问操作符来访问它们。这在构建复杂的数据结构和数据记录时非常有用。 访问一个结构的成员时还可以使用箭头操作符 -。这个操作符通常用于访问指向结构体的指针的成员。结构体的成员可以是变量、其他结构体或其他数据类型。 下面是箭头操作符的一般形式 pointer_to_structure-member pointer_to_structure 是指向结构体的指针。member 是要访问的结构体成员的名称。 示例代码 #include stdio.h// 定义一个结构体 struct Point {int x;int y; };int main() {// 创建一个Point类型的结构体变量struct Point myPoint;myPoint.x 10;myPoint.y 20;// 创建指向结构体的指针struct Point *ptr myPoint;// 使用箭头操作符访问结构体的成员printf(x坐标%d\n, ptr-x); // 输出x坐标10printf(y坐标%d\n, ptr-y); // 输出y坐标20return 0; } 在上述示例中我们定义了一个名为 Point 的结构体其中包含 x 和 y 两个成员。然后我们创建了一个 Point 类型的结构体变量 myPoint 和一个指向结构体的指针 ptr。使用箭头操作符 ptr-x 和 ptr-y 可以访问结构体 myPoint 的成员。
http://www.dnsts.com.cn/news/165281.html

相关文章:

  • jsp系统网站建设带源代码旅游网站开发结束语
  • 最大网站建设公司排名wordpress中文分词
  • 国外网站设计理念企业微信软件
  • iis 网站目录权限设置杭州网站制作公司网站
  • 做个企业网站需要多少钱哪些网站可以注册邮箱
  • 做外贸什么网站比较好企业做网站哪家好
  • net的电商网站建设帝国cms网站地图xml
  • 绍兴专业做网站公司WordPress建站教程 网盘
  • 旅游网站效果图delphi 实现网站开发
  • 江阴网站制作设计搭建自己的个人网站
  • 株洲网站网络推广怎么做上海比较好的装修公司排名
  • 中小型电子商务网站怎么套网站
  • 哪些网站是做食品网站建设cms系统
  • 如何做测评视频网站wordpress网站加密码
  • 那些网站可以做0首付分期手机号诸暨做网站公司
  • 微信电脑版seo技术
  • 国外教程 网站wap手机网站开发
  • 站群seo技巧公司模板设计
  • 商务网站建设的主流程网络营销师是做什么的
  • 哈巴河网站制作商城网站建设价格费用
  • 网站收录量低怎么做中国建设银行个人登录网站
  • 无锡网站建设品牌大全安装wordpress 空白
  • 网页此站点不安全延安网站建设费用
  • 青海省公路建设网站雨花区网站建设
  • 盐城城乡建设局网站服装如何做微商城网站建设
  • 超市网站模板网页模板下载网站
  • 网站怎么加背景音乐rest api wordpress
  • 东莞企业推广网站制作h5可以用什么网站做
  • win7自建网站宁波男科公立医院哪家最好
  • 58同城上海网站建设cvm服务器做网站