中括号可不是表示可有可无,那是表示数组下标的,在两个中括号当中加上一个自然数(可以是变量,但是变量值一定要是自然数)就成为可以表示这个数组当中的一个元素.
大括号表示开始和结束,子程序当中表示子程序的开始和结束,类对象和结构体当中表示他们的开始和结束.分支语句和循环语句当中表示一系列指令的开始和结束.
尖括号?对不起可能是我学艺不精,对C++不甚了解,无法为您解答尖括号在C++当中的用处,在我写过的那么多程序当中我也没有在指令当中使用过尖括号(注释不算).
象那些for,if,while等等的判断语句如果经过判断后后面要执行的语句多于一句的话那么就要加{ }括起来,不然的话他只会执行跟这个判断语句最接近的那个语句。比如
for(i=0i<=N,i++)
j=i++
k=j++
如果不加括号的话就不会同时执行
j=i++
k=j++
了,而是执行完
for(i=0i<=N,i++)
j=i++
再执行k=j++
不加括号是按址传递参数, 加括号是按值传递参数.你的例子里, 假如你的过程p4里面,将x1,x2传给参数y1,y2
x1是按址, 就是x1和y1指向的同一个内存地址, 在p4里改变y1值, 同样x1也改变
x2是按值,就是x2和y2指向不同的内存地址,在p4里改变y2值, x1不受影响.
另外你的命令set udfparams to value写错了,应该是SET UDFPARMS TO VALUE
该命令的帮助文件中说明如下:
指定 Microsoft Visual FoxPro 按值还是按引用传递参数给用户自定义函数(UDF)。
SET UDFPARMS TO VALUE | REFERENCE
参数
TO VALUE
按值创建变量给参数。当按值传递变量时,过程或函数可以改变变量中的值;但是,调用程序中的变量原值不会改变。(默认)
注意:
使用 SET UDFPARMS TO VALUE 不会影响 DO 命令中的 WITH
子句,默认情况下,DO…WITH…命令通过引用传递给参数。
TO REFERENCE
按引用传递变量给参数。当按引用传递变量时,过程或函数可以改变变量中的值,并且改变调用程序中的变量原值。
注意其中这句:使用 SET UDFPARMS TO VALUE 不会影响 DO 命令中的 WITH 子句,默认情况下,DO…WITH…命令通过引用传递给参数。
就是说虽然你有这句命令, 但是你的do 命令默认仍是按引用(按址)传递
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)