今天学习了c++第二部分知识点;
#include <iostream>
using namespace std;
/*
extern int num;
struct stu
{
int num;
char name[32];
void func(void)
{
cout<<"我是结构体成员"<<endl;
}
};
void test01()
{
//C++语言中不用加struct
stu lucy={100,"lucy"};
lucy.func();
}
void test02()
{
int a=10;
int b=20;
cout<<"c++中"<<(a>b?a:b)<<endl;
//a<b?a:b整体结果是变量本身(引用)左值(能被复制)
a>b?a:b=100;//b=100
}
void test03()
{
cout<<"num="<<num<<endl;
const int data=10;
cout<<"data="<<data<<endl;
int *p=(int *)&data;
*p=2000;
cout<<"*p="<<*p<<endl;
cout<<"data="<<data<<endl;
const stu aa={100,"lucy"};
cout<<"num="<<aa.num<<", name="<<aa.name<<endl;//
stu *p1=(stu*)&aa;
p1->num=2000;
cout<<"num="<<aa.num<<", name="<<aa.name<<endl;
int b=20;
const int a=b;
p=(int*)&a;
*p=2000;
cout<<"*p = "<<*p <<endl;//
cout<<"a = "<<a <<endl;//
}
#define MAX 1024
const short my=2048;
void func(short i)
{
cout<<"short类型"<<endl;
}
void func(int i)
{
cout<<"int"<<endl;
}
void test04()
{
func(MAX);
func(my);
}
void test()
{
const int my=100;
#define MAX 1024
}
void test05()
{
cout<<"MAX = "<<MAX<<endl;//
}
namespace A
{
const int num=10;
#define MAX 1024
}
void test06()
{
cout<<"num="<<A::num<<endl;
cout<<"MAX= "<<MAX<<endl;
}
void test07()
{
int num=100;
int &a=num;
cout<<"num="<<num<<endl;
a=200;
cout<<"num="<<a<<endl;
//a是num的别名 所以num和a具有相同的地址空间
cout<<"a 的地址:"<<&a<<endl;
cout<<"num 的地址:"<<&num<<endl;
}
void test08()
{
int arr[5]={10,20,30,40,50};
int (&my)[5]=arr;
int i=0;
for(i=0;i<5;i++)
{
//cout<<my[i]<<endl;
cout<<my[i]<<" ";
}
cout<<endl;
}
void my_01(int *a,int *b)
{
int tmp=*a;
*a=*b;
*b=tmp;
}
void my_02(int &a,int &b)
{
int tmp=a;
a=b;
b=tmp;
}
void test09()
{
int data1=10,data2=20;
cout<<"data1="<<data1<<", data2="<<data2<<endl;
my_01(&data1,&data2);
cout<<"data1="<<data1<<", data2="<<data2<<endl;
my_02(data1,data2);
cout<<"data1="<<data1<<", data2="<<data2<<endl;
}
int& my_00(void)
{
static int num=100;
return num;
}
void test10()
{
int &p=my_00();
cout<<"p="<<p<<endl;
}
int& my_00(void)
{
static int num=100;
cout<<"num="<<num<<endl;
return num;
}
void test10()
{
my_00()=1000;
my_00();
}
#include<stdlib.h>
#include<string.h>
typedef struct
{
int num;
char name[32];
}STU;
void my_01(STU aaa)
{
cout<<sizeof(aaa)<<endl;
cout<<"学号:"<<aaa.num<<", 姓名:"<<aaa.name<<endl;
}
void my_02(const STU &aaa)
{
cout<<sizeof(aaa)<<endl;
cout<<"学号:"<<aaa.num<<", 姓名:"<<aaa.name<<endl;
}
void test11()
{
STU lucy={100,"lala"};
//定义一个函数,遍历lucy成员(读操作)
my_01(lucy);
my_02(lucy);
}
*/
#include<stdlib.h>
#include<string.h>
void my_str(char **my_str)
{
*my_str=(char*)calloc(1,32);
strcpy(*my_str,"hello world");
}
void test12()
{
char *str=NULL;
my_str(&str);
cout<<"str="<<str<<endl;
}
int main(int argc, char *argv[])
{
test12();
return 0;
}