• 与C语言不同的基础语法


    一、不同

    1.可同时定义并初始化多个变量
    2.有string字符串类型
    3.可在循环中定义变量
    #include
    using namespace std;
    int main()
    {
    	int a=1,b=2;//可同时定义并初始化多个变量
    	string name;//字符串类型 
    	char array[3]; 
    	for(int i=1;i<=3;i++)//for中定义i变量 
    	{
    		cin>>array[i];
    		cout<<"array:"<<array[i]<<","<<endl; 
    	}
    	cin>>name;
    	cout<<"name:"<<name<<"\n"<<endl; 
    	cout<<"a:"<<a<<"\n"<<"b:"<<b<<endl;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    4.动态内存分配关键字不同
    #include
    #include//包含字符串处理函数 
    using namespace std;
    int main()
    {
    	int *p=new int;//为指针动态分配一个int型空间;相当于C语言中:int *p=(int *)malloc(sizeof(int)); 
    	char *q=new char[3];//为指针动态分配一个连续空间;相当于C语言中:char *p=(char*)calloc(3,sizeof(char)); 
    	strcpy(q,"堆内存的动态分配");//将字段复制到指针q指向的内存空间中 
    	*p=100;
    	cout<<"指针p的值:"<<*p<<endl;
    	cout<<q<<endl;
    	delete []q;// 释放一个连续空间[]+释放变量名;相当于C语言中:for(i=0;i<3;i++) free(q[i]); 
    	delete p;//释放p所指向的内存空间,相当于C语言中:free(p); 
     } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    5.可以定义函数的结构体类型
    #include
    using namespace std;
    struct function{
    	void sayHi(char *name){
    		cout<<"hi,"<<name<<endl;
    	}
    	void sayBye(char *name){
    		cout<<"bye,"<<name<<endl;
    	}
    };
    int main()
    {
    	struct function fun;
    	fun.sayHi("c++");//调用结构体中方法
    	fun.sayBye("c++");
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    二、拓展

    特殊运算符的应用
    #include
    using namespace std;
    int main()
    {
    	int a=10,b=12,flag=~a;
    	cout<<"~a:"<<flag<<endl;//按位取反:1111 0101 —> 负数:符号位不变,其余位取反+1 —> 得原码:-000 1011即-11 
    	flag=a&b;
    	cout<<"a&b:"<<flag<<endl;//按位与:同1为1,否则为0 
    	flag=a|b;
    	cout<<"a|b:"<<flag<<endl;//按位或:同0才0,否则为1 
    	flag=a^b;
    	cout<<"a^b:"<<flag<<endl;//异或运算:相异为1,相同为0 
    	flag=a<<1;
    	cout<<"a<<1:"<<flag<<endl;//a左移一位:0000 1010 —>0001 0100即 20
    	flag=a>>1;
    	cout<<"a>>1:"<<flag<<endl;// a右移一位:0000 1010 —>0000 0101即 5
     } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
  • 相关阅读:
    会议信息管理系统SSM记录(五)
    Ab3d.PowerToys and Ab3d.DXEngine Crack
    FlaskUser type object ‘User‘ has no attribute ‘get_user_by_token‘
    聚观早报 | 东方甄选与顺丰、京东合作;拼多多跨境电商平台上线
    qt环境配置
    video 按钮全屏
    PS插件一键轻松搞定电商产品摄影图!
    【ModelArts系列】华为ModelArts训练yolov3模型(训练管理)
    JSON和全局异常处理
    控制笔记(自控+现控)
  • 原文地址:https://blog.csdn.net/2301_76371717/article/details/133840287