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

武平县网站建设百度做网站需要多少钱

武平县网站建设,百度做网站需要多少钱,做农产品网站需要办什么证,7块钱建购物网站文章目录 操作符详解一、上期扩展二、单目操作符三、逗号表达式四、下标访问[]、 函数调用()五、结构成员访问操作符六、操作符的属性#xff1a;优先级、结合性1. 优先级2. 结合性 操作符详解 上期回顾#xff1a;【C语言基础】#xff1a;操作符详解(一) 一、上期扩展 … 文章目录 操作符详解一、上期扩展二、单目操作符三、逗号表达式四、下标访问[]、 函数调用()五、结构成员访问操作符六、操作符的属性优先级、结合性1. 优先级2. 结合性 操作符详解 上期回顾【C语言基础】操作符详解(一) 一、上期扩展 【练习一】不能创建临时变量第三个变量 实现两个整数的交换。 方法一我们可以运用加减法来实现这个功能。 分析 交换前a 3b 5 我们先让 a b 然后把这个结果赋值给a也就是a a b 现在a的值变成了8而b的值还是5 接下来我们让a - b把这个表达式赋值给吧也就是b a - b 现在a的值是8b的值是3 最后我们只要将a - b这个表达式赋值给a就行啦也就是a a - b。 我们就会发现a和b的值发生了互换。 下面是代码实现 #includestdio.h int main() {int a 3;int b 5;printf(交换前a %d b %d\n, a, b);a a b;// a 8, b 5b a - b;// a 8, b 3a a - b;// a 5, b 3printf(交换后a %d b %d\n, a, b);return 0; }很明显这种方法也存在着明显的不足那就是当a和b的值比较大时a和b可能会超出int的范围会出现溢出的现象导致无法进行值的互换。 方法二按位异或实现 上次我们学习了位操作符其中按位异或就是对应二进制位相同为0相异为1。根据这个特性我们也能实现这个功能。 分析 首先我们要了解按位异或中几种特殊的情况。比如a ^ aa ^ 0等等。 1101 1101 按位异或后的结果就是0,而任何数与0按位异或后还是它本身。 根据这个特点我们也能实现a和b的互换。 注意按位异或是支持交换律的。 下面说代码实现 #includestdio.h int main() {int a 3;int b 5;printf(交换前a %d b %d\n, a, b);a a ^ b;b a ^ b; // b a ^ b ^ b, b ^ b就等于0// 现在a a ^ b, b aa a ^ b;// a a ^ b ^ a, 因为a ^ a等于0// 现在a b, b aprintf(交换后a %d b %d\n, a, b);return 0; }这种方法也存在着局限性首先要知道按位操作符的操作数必须是整数其次代码的可读性也不高不方便他人理解。 【练习二】编写代码实现求一个整数存储在内存中的二进制中1的个数。 方法一通过不断的去模2除2来获得二进制中1的个数。 注意这里是指补码。 #includestdio.h int count_one_of_bite(unsigned int n) {int count 0; // 计数while (n){if (n % 2 1)count;n n / 2;}return count; } int main() {int n 0;scanf(%d, n);int ret count_one_of_bite(n);printf(二进制中一的个数%d\n, ret);return 0; }方法二n (n - 1) #includestdio.h int count_one_of_bite(unsigned int n) {int count 0; // 计数while (n){count;n n (n - 1);}return count; } int main() {int n 0;scanf(%d, n);int ret count_one_of_bite(n);printf(二进制中一的个数%d\n, ret);return 0; }二、单目操作符 单目操作符Unary Operator是一种只操作一个操作数的操作符。 !、、–、、、、-、~*、sizeof(类型) 正号 ()用于表示正数例如 5 表示正数 5。负号 (-)用于表示负数例如 -5 表示负数 5。递增 ()用于将操作数的值增加 1。可以作为前缀 (i) 或后缀 (i) 使用。递减 (–)用于将操作数的值减少 1。可以作为前缀 (–i) 或后缀 (i–) 使用。取址 ()用于获取变量的内存地址例如 x 表示变量 x 的地址。解引用 (*)用于访问指针所指向的内存中的值。例如*ptr 表示指针 ptr 指向的值。逻辑非 (!)用于求取操作数的逻辑非即取反。例如!x 表示 x 的逻辑非。按位取反 (~)用于对操作数执行按位取反操作。例如 ~ x 表示对 x 的每个位取反。 这些是 C 语言中常用的一些单目操作符。它们可以用来执行各种不同的操作如数值运算、递增递减、逻辑运算和位运算等。 三、逗号表达式 逗号表达式Comma Expression是一种由逗号操作符连接起来的表达式其特点是依次计算每个子表达式并返回最后一个子表达式的值作为整个表达式的值。逗号表达式的一般形式如下 expr1, expr2, expr3, ..., exprN在逗号表达式中逗号操作符 , 用于连接多个子表达式。在计算逗号表达式时每个子表达式都会按顺序依次执行但整个表达式的值将是最后一个子表达式的值。 逗号表达式在 C 语言中可以用于一些特定的场景如在 for 循环的初始化和迭代部分、函数调用参数中以及变量初始化等地方。例如在 for 循环中使用逗号表达式可以同时初始化多个变量 for (int i 0, j 10; i 10; i, j--) {// 循环体 }在函数调用参数中使用逗号表达式可以依次计算多个表达式并将它们作为函数的参数 int result myFunction(a, b, c1, d*2);逗号表达式的使用要谨慎因为它可能会使代码变得难以理解。在某些情况下使用逗号表达式可能降低代码的可读性因此应该根据具体情况慎重考虑是否使用。 【练习】 #includestdio.h int main() {int a 1;int b 2;int c (a b, a b 10, a, b a 1); // 逗号表达式printf(%d\n, c);return 0; }可以看到第六行是一个逗号表达式从左到右依次进行计算最后返回最右边的结果。 四、下标访问[]、 函数调用() [ ] 下标引用操作符 操作数一个数组名 一个索引值(下标) 【举例】 int arr[10];//创建数组 arr[9] 10;//实用下标引用操作符。 []的两个操作数是arr和9。函数调用操作符 接受一个或者多个操作数第⼀个操作数是函数名剩余的操作数就是传递给函数的参数。 【举例】 #include stdio.h void test1() {printf(hehe\n); } void test2(const char *str) {printf(%s\n, str); } int main() {test1(); //这⾥的()就是作为函数调⽤操作符。test2(hello world);//这⾥的()就是函数调⽤操作符。return 0; }五、结构成员访问操作符 结构体 结构体Struct是一种用户自定义的数据类型用于将不同类型的数据组合成一个单独的实体。结构体能够将多个变量打包成一个整体方便操作和传递。 结构是⼀些值的集合这些值称为成员变量。结构的每个成员可以是不同类型的变量如标量、数组、指针甚⾄是其他结构体。 结构体的声明包括两个部分结构体模板的定义和结构体变量的声明。 结构体模板的定义 struct 结构体名称 {数据类型 成员1;数据类型 成员2;// 更多成员... };其中“结构体名称” 是用户定义的结构体类型的名称可以根据需要自行命名。“成员1”、“成员2” 等是结构体中的成员变量每个成员变量都有自己的数据类型。 【示例】坐标结构体的定义 struct Point {int x;int y; };这个结构体定义了一个名为 Point 的结构体类型它有两个成员变量 x 和 y都是 int 类型。 结构体变量的声明 struct 结构体名称 变量名称;在结构体定义之后可以通过声明结构体变量来创建实际的结构体对象。 【示例】使用上述定义的 Point 结构体来声明一个名为 p 的结构体变量 struct Point p;现在变量 p 是一个具有两个成员变量的结构体对象。可以通过 . 运算符来访问结构体的成员变量例如 p.x 或 p.y。 另外C 语言还提供了一种更简洁的方式来声明结构体变量即使用 typedef 关键字 typedef struct {数据类型 成员1;数据类型 成员2;// 更多成员... } 结构体名称;这样就可以直接使用 结构体名称 来定义结构体变量而不需要再写 struct 关键字。例如 typedef struct {int x;int y; } Point; Point p;这里的 Point 就是一个结构体类型并且可以直接用于声明结构体变量。 //代码1变量的定义 struct Point {int x;int y; }p1; //声明类型的同时定义变量p1 struct Point p2; //定义结构体变量p2//代码2:初始化。 struct Point p3 { 10, 20 };struct Stu //类型声明 {char name[15];//名字int age; //年龄 };struct Stu s1 { zhangsan, 20 };//初始化 struct Stu s2 { .age 20, .name lisi };//指定顺序初始化//代码3 struct Node {int data;struct Point p;struct Node* next; }n1 { 10, {4,5}, NULL }; //结构体嵌套初始化 struct Node n2 { 20, {5, 6}, NULL };//结构体嵌套初始化结构体成员的直接访问 结构体成员的直接访问是通过点操作符 . 访问的。点操作符接受两个操作数。如下所示 #include stdio.h struct Point {int x;int y; }p { 1,2 }; int main() {printf(x: %d y: %d\n, p.x, p.y);return 0; }使用方式结构体变量.成员名 结构体成员的间接访问 有时候我们得到的不是⼀个结构体变量而是得到了⼀个指向结构体的指针。如下所示 #include stdio.h struct Point {int x;int y; }; int main() {struct Point p {3, 4};struct Point *ptr p;ptr-x 10;ptr-y 20;printf(x %d y %d\n, ptr-x, ptr-y);return 0; }使用方式结构体指针-成员名 综合举例 #include stdio.h #include string.h struct Stu {char name[15];//名字int age; //年龄 }; void print_stu(struct Stu s) {printf(%s %d\n, s.name, s.age); } void set_stu(struct Stu* ps) {strcpy(ps-name, 李四);ps-age 28; } int main() {struct Stu s { 张三, 20 };print_stu(s);set_stu(s);print_stu(s);return 0; }六、操作符的属性优先级、结合性 C语⾔的操作符有2个重要的属性优先级、结合性这两个属性决定了表达式求值的计算顺序。 1. 优先级 优先级指的是如果⼀个表达式包含多个运算符哪个运算符应该优先执⾏。各种运算符的优先级是不⼀样的。 3 4 * 5;上⾯⽰例中表达式 3 4 * 5 ⾥⾯既有加法运算符 ⼜有乘法运算符 * 。由于乘法的优先级⾼于加法所以会先计算 4 * 5 ⽽不是先计算 3 4 。 2. 结合性 如果两个运算符优先级相同优先级没办法确定先计算哪个了这时候就看结合性了则根据运算符是左结合还是右结合决定执行顺序。⼤部分运算符是左结合(从左到右执行)少数运算符是右结合(从右到左执行)比如赋值运算符( )。 5 * 6 / 2;上面示例中 * 和 / 的优先级相同它们都是左结合运算符所以从左到右执行先计算 5 * 6 再计算 6 / 2 。 运算符的优先级顺序很多下⾯是部分运算符的优先级顺序按照优先级从高到低排列建议大概记住这些操作符的优先级就行其他操作符在使用的时候查看下面表格就可以了。 • 圆括号 () • ⾃增运算符 ⾃减运算符 – • 单⽬运算符 和 - • 乘法 * 除法 / • 加法 减法 - • 关系运算符 、 等 • 赋值运算符 由于圆括号的优先级最高可以使用它改变其他运算符的优先级。
http://www.dnsts.com.cn/news/228207.html

相关文章:

  • 没有后台的网站怎么做排名手机主页网站哪个好用
  • 手机餐饮网站开发网站图片怎么做白色背景
  • 苏州做外贸网站网站推广的技巧
  • vr看房网站开发费用汕头外发加工网
  • 政务网站网上调查怎么做买表的网站
  • 马鞍山网站建设文国家企业信用信息公示系统四川
  • 网站建设如何维护做网站找 汇搜网络
  • 互联网站怎么做纯文本网站
  • 中小企业网站搭建平台吸引人才
  • 注册网站不用手机短信验证的网络运维工程师需要什么证
  • thinkphp 显示第三方网站图片网站这么建设
  • vs网站开发入门在线购物网站怎么做
  • html 做网站案例简单网站建设思维导图
  • 数据库与网站建设的关系专业团队为您服务的句子
  • 公司做网站有什么好处htm5网站
  • 制作微网站的费用资质做网站需要用到什么
  • 做网站开发的流程上海微信小程序开发公司
  • php做网站中下一步按钮宣传手册的制作
  • 如何将自己做的网站放到网上上海十大国企排名
  • 广告网站开发背景ios移动网站开发详解
  • 广州网站公司建设网站子网站建设工作
  • 广西建设网站在线服务个人博客免费模板
  • 网站开发需要的技术人才网络系统管理与维护形考任务1
  • 在微信上怎么做网站短链接在线生成免费
  • 企业网站推广可以选择哪些方法wordpress的滑块换成图片
  • vps正常网站打不开用个人免费空间快速建立个人网站后方平台
  • 精品网站建设电话建设国家标准官方网站
  • 警告欺骗网站模板小白学编程应该从哪里开始学
  • 网站建设方案书的内容太原h5建站
  • 公司网站推广计划书怎么做教育类手机网站模板