c++中静态成员变量 静态成员函数 全局变量与静态函数的关系 字符串中括号的匹配编程 (笔试经历)
笔试经历
1 类中的静态变量不能通过构造函数参数列表来初始化,因为静态变量不属于哪个对象。同时静态变量在不初始化的情况下系统会自动为变量赋值,数值型赋值为零,字符型赋值为空。
非静态变量只有在定义时才会被分配内存,因此使用未声明的或者声明了未定义的变量程序都会运行失败。未声明时编译时失败,未定义是运行时失败。
2 静态成员数中的普通变量无论c还是java都是普通变量,需要定义后使用。
在c++中静态成员函数的访问方式为:
类名::函数名();
java中静态成员函数的访问方式:
类名.函数名();
3 定义为全局的变量实际就是一个全局化的静态变量;定义在局部的静态变量是局部的变量,不会因为是静态的就被当做全局变量。
4 输入一个字符串看括号是否匹配
#include <iostream> #include <string> #include <stack> using namespace std; int main() { string str="a{{bc(d)}sdd"; stack<char> st; int i; char ch,sh; bool flag=true; for(i=0;i<str.size();i++) { ch=str[i]; if(ch=='('||ch=='{') st.push(ch); } for(i=0;i<str.size();i++) { ch=str[i]; if(ch==')'||ch=='}') { if(st.size()!=0) { sh=st.top(); switch(sh) { case '(': sh=')';break; case '{': sh='}';break; default:cout<<"error"<<endl; } if(ch!=sh){flag=false;break;} else st.pop(); }else if(st.size()==0){ flag=false;break;} } } if(st.size()!=0) flag=false; if(flag==true)cout<<"匹配成功"<<endl; else cout<<"匹配失败"<<endl; return 0; }
作者:小德cyj
出处:http://www.cnblogs.com/dongzhuangdian
欢迎转载,希望注明出处