扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这不是C的语法,是C++的引用
创新互联公司2013年成立,是专业互联网技术服务公司,拥有项目成都网站建设、网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元龙子湖做网站,已为上家服务,为龙子湖各地企业和个人服务,联系电话:13518219792
也就是传入的参数L在这个函数中与调用的函数是同一个对象,在函数中修改了这个参数的值,在调用这个函数的外部L的值一样被修改
stAlpha[2]是一个struct stTest类的结构数组,元素为2个,
stAlpha[0].chLetter[2]指的是这个结构数组的第一个元素里面的字符数组成员chletter的第三个字符也就是‘c’,而printf 中的%s的参数对应的只能是一个字符串的指针(也就是一个字符串的首地址),%s必须对应一个地址,所以必须stAlpha[0].chLetter[2]前面加一个取地址符,第二个stAlpha[1].chLetter[2]前面也应该加一个取地址符。
输出结果是:cde,CB
楼主请注意,那不是取地址符,是引用..
如果不加那个,运行的时候会把整个l的内容复制一份,送给函数去处理,因此,主调函数中的l的内容不会发生变化
c 语言函数 形参 列表 中 可以是普通变量 或指针变量,不允许 加取址符。
c++ 语言函数 形参 列表 中 加取址符 的参数 叫 “引用”,c 不支持。
------
函数 调用 的实参 类型 要与 形参对应,只有 形参 为 指针变量 的 实参 才可以是 地址。
void f(int x, int *y){};
int a,b;
int *p;
p=a;
调用
可以是 f(b,a);
可以是 f(b,p);
不可以是 f(b,a);
不可以是 f(b,a);
不可以是 f(b,a);
不可以是 f(b,p);
不可以是 f(b,p);
不可以是 f(b,p);
(但愿回答不被封。)
就是找到这个变量的内存地址,直接读写例如:scanf("%d",a);就是找到a的地址,把读入一个数写到a 的地址中在例如p=a;就是让指针p指向a的内存地址,这样直接对内存读写.有利于提高操作速度.
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流