C++初级学习(二)——运算符和循环、判断

来源:互联网 发布:手机实时监控软件 编辑:程序博客网 时间:2024/06/05 18:45

运算符

算数运算符 (与C一致,略)

关系运算符(与C一致,略)

逻辑运算符(与C一致,略)

赋值运算符(与C一致,略)

杂项运算符(似乎与C一致,还是记录一下)

重要杂项运算符:

运算符 描述 examle sizeof 返回变量的大小 int hzy,sizeof(hzy)将返回4 condition?X:Y 若condition为真,则值为X,否则为Y 略 , 执行一系列运算,整个逗号表达式的值是以逗号分隔的列表中的最后一个表达式的值 略 .(点)和->(箭头) 用于引用类、结构和共用体成员 略 cast 强制转换,将一种数据类型转换为另一种数据类型 int(2.2000)将返回2 & 指针运算符&返回变量的地址 略 * 指针运算符*指向一个变量 略

* sizeof
语法:

sizeof (data type);
  • condition?X:Y
    语法:
Exp1 ? Exp2 : Exp3;

Exp1若为真,则计算Exp2的值,且将计算结果当做整个表达式的值,否则计算Exp3的值。该语句可以用来替代简单的if-else语句。
* ,

看下面这个例子:
#include <iostream>using namespace std;int main(){   int i, j;   j = 10;   i = (j++, j+100, 999+j);   cout << i;   return 0;}

最终i的值为1010,原因如下:
j的初值为10,先自增,为11,然后执行j+100,值为111,但是该值不赋予j,因此j还是11,最后999+11=1010,把该值赋予i。

  • .和->
    可以参考如下的例子:
struct Employee {  char first_name[16];  int  age;} emp;//结构体emp中含有的成员为first_name数组和agestrcpy(emp.first_name, "zara");//将“zara”赋给emp中的first_namestrcpy(p_emp->first_name, "zara");//p_emp为指针,指向类型为Employee的对象,将“zara”赋给对象emp的first_name成员

访问结构的成员时使用点运算符,而通过指针访问结构的成员时使用箭头运算符。
* cast

(type) expression;
  • &
    &为取地址运算符,返回操作数的内存地址。
  • *
    *为间接寻址运算符,返回操作数所指定地址的变量的值。

可以参考下列代码:

#include <iostream>using namespace std;int main (){   int  var;   int  *ptr;   int  val;   var = 3000;   // 获取 var 的地址   ptr = &var;   // 获取 ptr 的值   val = *ptr;   cout << "Value of var :" << var << endl;   cout << "Value of ptr :" << ptr << endl;   cout << "Value of val :" << val << endl;   return 0;}

结果如下:

Value of var :3000Value of ptr :0xbff64494Value of val :3000

注意仔细体会上述值的差别。

运算符的优先级

后缀>一元>乘除求余>加减>移位>关系>相等>位与>位异或>位或>逻辑与>逻辑或>条件>赋值>逗号

循环

基本与C一致。
C++11允许基于范围的for循环:

int my_array[5] = {1, 2, 3, 4, 5};// 每个数组元素乘于 2for (int &x : my_array)//:前面表示用于迭代的变量,后面表示循环的范围{    x *= 2;    cout << x << endl;  }// auto 类型也是 C++11 新标准中的,用来自动获取变量的类型for (auto &x : my_array) {    x *= 2;    cout << x << endl;  }
#include<iostream>  #include<string>  #include<cctype>  using namespace std;  int main()  {      string str("some string");      // range for 语句      for(auto &c : str)      {          c = toupper(c);      }      cout << str << endl;      return 0;  }

上述代码中,toupper函数为将小写转换为大写。代码遍历字符串,将所有字符变为大写然后输出。
goto对应需要加label作为标识符,goto语句可以用于跳出深嵌套。
for(::)可以用于表示一个无限循环
Tips:按下CTRL+C可以终止一个无限循环

判断(与C一致,略)

阅读全文
0 0
原创粉丝点击