更多草稿
c++新建源文件时,名字要叫main.cpp
#include <stdio.h>
#include <stdlib.h>
//用c++实现函数的调用
void momo(int& b)//把&写到形参的位置是c++的语法,c++中叫引用不叫取地址
//注意引用&要和变量挨着,不然会编译不通过
{
b=b+1;
}
int main()
{
int a=10;
momo(a);
printf("a=%d\n",a);
return 0;
}
与c语言不同,c++在子函数里面就直接可以改变变量的值,c语言中需要用指针(指针的传递与偏移)
c++在子函数中改变指针的值:
#include <stdio.h>
#include <stdlib.h>
//用c++实现函数的调用
void momo(int& b)//把&写到形参的位置是c++的语法,c++中叫引用不叫取地址
{
b=b+1;
}
void momo_pointer(int*& p)
{
//p=malloc(20);//红色提示“不能将void类型的值分配到int类型的实体”,说明要进行强势类型转换
p=(int*)malloc(20);//赋值运算符左右两边的类型要保证一样
p[0]=5;//在子函数内改变变量p的值,测试是否在main函数内也改变p值
}
int main()
{
int a=10;
momo(a);
printf("a=%d\n",a);
int *p=NULL;//null是0,定义p的初值是0
momo_pointer(p);//定义指针变量
printf("p[0]=%d\n",p[0]);//c++中对换行符不敏感
return 0;
}
c++中在子函数中改变指针的值就可以改变main函数中的值
而如果用c语言的话,就要用二级指针实现,*p=q