int a=3,b=4,*q=&b; *q=a+b;a=5; q=(a<b)?&a:&b; printf("%d %d %dn", a,b,*q)這道題怎麼算啊,
- 2022-11-24
int a=3,b=4,*q=&b; //定義a,b兩個整形變數並賦值。定義整形指標變數q,並將變數b的地址賦給q。& 就是取地址。
*q=a+b;//*q表示指標變數q指向的地址,將a+b的值賦給這個地址。就是b代表的地址。b=a+b=3+4=7
a=5;//給a賦值。a=5
q=(a
//&a和&b就是取a,b的地址。q=(a
printf(“%d %d %d\n”, a,b,*q);//a=5,b=7,*q=a=5
int a=3,b=4,*q=&b; ……………………………………初始化a=3,b=4q指向b
*q=a+b;……………………………………………………。。q指向b所以這句意思同b=a+b sob=7
a=5;…………………………………………………………。不用說
q=(a
所以最後 a=5 b=7 *p=a=5
#include #define sub(a) (a)-(a) main() { int a=2,b=3,c=5,d; d=sub(a+b)*c; printf(“%d\n”,d); } 答案是-20 d=sub(a+b)*c; ——>d=(a+b)-(a+b)*c d=(2+3)-(2+3)*5=-20 #define sub(a) (a)-(a) 正確寫法: #define sub(a) ((a)-(a))