• 与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
  • 相关阅读:
    十五分钟上手JavaScript之面向对象
    使用cmd运行第一个java程序(含有查看文件后缀名方法)
    Flutter 教程之 Flutter 中的 HMS 定位工具包
    Linux防火墙之SNAT与DNAT
    AI首席架构师10-AICA-蓝翔 《飞桨框架设计与核心技术》
    二、体验Linux系统(文件目录、shell)
    debian 10 安装apache2 zabbix
    IO模型5-进阶-Netty模型
    Redis 集群
    LEEDCODE 283移动零
  • 原文地址:https://blog.csdn.net/2301_76371717/article/details/133840287