不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等
不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等
作者:webabcd
介绍
不可或缺 Windows Native 之 C 语言
- 运算符
- 表达式
- 条件语句
- 循环语句
- 转向语句
- 空语句
示例
1、运算符
cOperator.h
#ifndef _MYHEAD_OPERATOR_ #define _MYHEAD_OPERATOR_ #ifdef __cplusplus extern "C" #endif char *demo_cOperator(); #endif
cOperator.c
/* * 运算符 */ #include "pch.h" #include "cOperator.h" #include "cHelper.h" char *demo_cOperator() { // 算数运算符:+, -, *, /, %, ++, -- // 关系运算符:>, <, ==, >=, <=, != // 逻辑运算符:&&, ||, ! // 位操作运算符:&, |, ~, ^, <<, >> // & - 按位与:都是 1 则为 1,其他情况为 0;比如 1001 & 0001 = 0001 // | - 按位或:有一个是 1 则为 1,其他情况为 0;比如 1001 | 0001 = 1001 // ^ - 按位异或:不一样则为 1,一样则为 0;比如 1001 | 0001 = 1000 // ~ - 按位非:~1001 = 0110 // 赋值运算符:=, +=, -=, *=, /=, %=, &=, |=, ^=, >>=, <<= // 条件运算符:三目运算符 ?: // 指针运算符:* 用于取内容 & 用于取地址 // i++, i本身加1,表达式i++的值为i加1前的值 // ++i, i本身加1,表达式++i的值为i加1后的值 int i = 0; i++; // 此处 i 的值为 1, i++ 的值为 0 int j = 0; ++j; // 此处 j 的值为 1, ++j 的值为 1 // sizeof - 是 C 里面的关键字,而不是函数,其是求字节数运算符 // 计算一个数据类型所占用空间的大小 int intSize = sizeof(short); // 2, 不同平台下 int short long 之类的占用空间可能不一样,用 sizeof 就可以知道其占用空间的大小了 char *str = "abcdefghijklmnopqrstuvwxyz"; int dataSize = sizeof(str); // 4, 这里计算的是 str 指针所占用空间的大小 return str_concat2(int_toString(intSize), int_toString(dataSize)); }
2、表达式,条件语句,循环语句,转向语句,空语句等
cStatement.h
#ifndef _MYHEAD_STATEMENT_ #define _MYHEAD_STATEMENT_ #ifdef __cplusplus extern "C" #endif char *demo_cStatement(); #endif
cStatement.c
/* * 表达式,条件语句,循环语句,控制语句,空语句等 */ #include "pch.h" #include "cStatement.h" #include "cHelper.h" char *demo_cStatement() { // 所谓表达式是由运算及运算对象所组成的具有特定含义的式子 // 所谓表达式语句就是由表达式加上分号“;”组成的 // i++, i本身加1,表达式i++的值为i加1前的值 // ++i, i本身加1,表达式++i的值为i加1后的值 // 复合语句(拿大括号括起来) { int p1 = 1; int p2 = 2; } // 只有“;”的语句就叫做空语句 while (0) { ; // 这一句就是空语句 } // 上面的等于下面的 while (0) ; // 上面的等于下面的 while (0); // 分支结构的语句(if else) int a = 0, b; if (a == 1) b = 1; // 注意:变量 a 在此之前如果不初始化的话,则这里是无法编译过的,也就是说未赋值的变量不能使用 if (a == 1) b = 2; else if (a == 2) b = 3; else b = 4; // 分支结构的语句(switch case) int x = 0, y; switch (x) { case 1: y = 2; break; case 2: y = 3; break; default: y = 4; } // 分支结构的语句(?:) int m, n = 0; m = n == 1 ? 2 : 3; // 循环语句(while) int i = 0; while (i < 100) { i++; } // 循环语句(do while) int j = 0; do { j++; } while (j < 100); // 循环语句(for) for (i = 0; i < 100; i++) { } for (i = 0; i < 100; ) { i++; } for (i = 0, j = 0; i < 100 && j < 100; i++, j++) { i++; j++; } int z = 0; for ( ; z < 100; ) { z++; } // 转向语句:break - 跳出循环 // 转向语句:continue - 跳过循环体的剩余的语句,直接进入下一次循环判断 // 转向语句:return - 退出函数,并提供返回值 // 转向语句:goto - 跳转至指定的标识符处,并执行其后的语句(需合理使用,比如多层嵌套语句退出时,使用 goto 就是很合理的) int result = 0; myAnchor: // 自定义标识符(标识符加冒号) if (result == 1) { result = 100; } if (result == 0) { result = 1; goto myAnchor; // 跳转至指定的标识符处(myAnchor:),并执行其后的语句 } return str_concat2("看代码及注释吧", int_toString(result)); }
OK
[源码下载]