void exe01()
{
cout<<"第一题 一般赋值语句的概念和方法。"<<endl;
//part 1
int i,*pi,*pii;//整型变量,整形指针变量
i = 100;//整形变量赋值
int &yi = i;//引用赋值
int ci[] = {123,32},cci[][2] = {213,21,435,234,12,96};//整形数组赋值
pi = (int*)malloc(sizeof(int));//为整形指针变量自动分配内存
pi = &cci[0][1];//为指针变量赋值
pii = (int*)malloc(sizeof(int));
pii = ci;//指针指向数组的首地址
cout<<"yi: "<<yi<<endl;
cout<<"pii: "<<pii<<" *pii: "<<*pii<<endl;
cout<<"*pi: "<<*pi<<" *(++pi): "<<*(++pi)<<" ++(*pi): "<<++(*pi)<<endl<<endl;
pii = NULL;
pi = NULL;
free(pii);//指针不再被使用的话一定要释放,不然会造成内存泄漏
free(pi);
//part 2
cout<<"//part 2"<<endl;
int x = 3,y,z;//将x赋值为3
x *= (y = z = 4);printf("x = %d/n",x);//不要把*=看成指针,那是乘以!x*y = 3*4 = 12
z = 2;//此时x = 12 y = 4 z = 2
x = (y = z);printf("x = (y = z), x = %d/n",x);//x = y = 4
x = (y == z);printf("x = (y == z), x = %d/n",x);//x = (y == z)?1:0; 因为y = z = 2所以应该是1
x = (y & z);printf("x = (y & z), x = %d/n",x);//y = z = 00000010;全1出1,y & z = 00000010;所以x = 2
x = (y && z);printf("x = (y && z), x = %d/n",x);//(y!=0 && z!=0)?1:0;因为y = z = 2所以x = 1
y = 4;//此时x = 1 y = 4 z = 2
x = (y | z);printf("x = (y | z), x = %d/n",x);//y|z = 00000100|00000010 = 00000110 = 6
x = (y || z);printf("x = (y || z), x = %d/n",x);//(y!=0 || z!=0)?1:0;因为y = 4 z = 2所以是1
x = (y == z)?4:5;printf("x = (y == z)?4:5, x = %d/n",x);//5
}
以下是运行结果: