答案是6
int a[6] = {1,2,3,4,5,6}; 这句a就是指向1所在地址的指针
int ptr = (int)(&a+1); a和&a是不同的 &a的类型是 int[6] 所以它加一的结果是 1所在位置加上6个int元素的大小 也就是6后面一个数字 是未知的
printf("%d\n" , (ptr-1) ); 这句话就简单了,就是取出了6
如果这边第二句的&a改成a 那答案就是1了
兄弟,你如果把前两句写成一个文件,文件叫avgm把后两句写到另一个文件里,这个文件叫什么无所谓,然后运行就可以了
你的问题是没有理解matlab的函数是怎么运行的,函数只能写成一个文件,然后在其他文件中调用它,不能像其他语言一样在函数文件中调用函数,如果那样调用的话,matlab会找不到avgm,所以就会说avg没有定义,懂了么?
r = Test1 = "Test"这句可能有问题,
Test1 = "Test"的计算结果为布尔型,强制转换为整型后结果只能是1或0
即你的变量r可能的只有0或1
“周长”&c&”cm“不合理啊应该是 “周长” & c & ”cm“
START: CLR 00H ;将00H但愿的内容清零
MOV R7,#04H ;将立即数04H送给寄存器R7
MOV R0,#20H ;将将立即数20H送给寄存器R0
LOOP: MOV A,@R0 ;将20H单元的内容送给计数器ACC
MOV 2BH,A ;将累加器ACC内的数放到2BH单元
INC R0 ;计数器R0+1
MOV 2AH,@R0 ;将21H的内容送到2AH单元
CLR C ;清除标志位
SUBB A,@R0 ;将21H单元的内容与A中的相减结果放在A中
JC NEXT ;判断是否有借位!有则跳转至NEXT;
MOV @R0,2BH
DEC R0
MOV @R0,2AH
INC R0
SETB 00H
NEXT: DJNZ R7,LOOP //R7自减1后不为零,则跳转至LOOP
JB 00H,START
SJMP $
(20H)=0D3H,(21H)=30H,(22H)=45H,(23H)=82H
后面的分析是一样的
DEC是自减1;
SETB是置位
SJMP:短跳转
原因很简单
假设文件中存入的是
2 2 2 2 2 2 2 2
1 1 1 1 1 1 1 1
系统默认还要加个文件结束符EOF(多数情况下为-1)
第一种情况下读了两条记录后,继续读EOF会返回0值,所有只有两条记录输出
而第二种情况下 !feof(fp) 的值在读EOF时仍然为真,读完之后才会为假,所有会有三条记录。
你可以建立一个空文件,测试一下
if(!feof(fp))
printf(“a”);
这样会输出一个a;
懂了不?
以上就是关于c语言: 不好理解的指针。很短的程序全部的内容,包括:c语言: 不好理解的指针。很短的程序、帮我看一段很短的MatlaB程序吧、vb 基本问题 刚开始自学,很短的程序,帮忙纠错一下等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)