main 程序都看不到 max 的字眼,我也是醉了。。。。
我就不信弄不粗来
` ` `
#include <stdio.h>
int main (int argc, const char * argv[]) {
int a = 5; //a is int
int * b = &a; //b is a pointer to int
int * * c = &b; //c is a pointer to int *
int * * * d = &c; //d is a pointer to int * *
printf ("a = %d, &a = %p\n", a, &a );
printf ("b = %p, &b = %p\n", b, &b );
printf ("c = %p, &c = %p\n", c, &c );
printf ("d = %p, &d = %p\n", d, &d );
printf ("*b = %d\n", *b );
printf ("**c = %d\n", **c );
printf ("***d = %d\n", ***d );
printf ("%d\n", &a == b );
printf ("%d\n", &b == c );
printf ("%d\n", &c == d );
printf ("%d\n", a == *b );
printf ("%d\n", b == *c );
printf ("%d\n", c == *d );
return 0;
}
` ` `
```c
#include <stdio.h>
int main (int argc, const char * argv[]) {
int a = 5; //a is int
int * b = &a; //b is a pointer to int
int * * c = &b; //c is a pointer to int *
int * * * d = &c; //d is a pointer to int * *
printf ("a = %d, &a = %p\n", a, &a );
printf ("b = %p, &b = %p\n", b, &b );
printf ("c = %p, &c = %p\n", c, &c );
printf ("d = %p, &d = %p\n", d, &d );
printf ("*b = %d\n", *b );
printf ("**c = %d\n", **c );
printf ("***d = %d\n", ***d );
printf ("%d\n", &a == b );
printf ("%d\n", &b == c );
printf ("%d\n", &c == d );
printf ("%d\n", a == *b );
printf ("%d\n", b == *c );
printf ("%d\n", c == *d );
return 0;
}
```
`#include <stdio.h>
`
`int main (int argc, const char * argv[]) {
`
` int a = 5; //a is int
` int * b = &a; //b is a pointer to int
` int * * c = &b; //c is a pointer to int *
` int * * * d = &c; //d is a pointer to int * *
`
` printf ("a = %d, &a = %p\n", a, &a );
` printf ("b = %p, &b = %p\n", b, &b );
` printf ("c = %p, &c = %p\n", c, &c );
` printf ("d = %p, &d = %p\n", d, &d );
`
` printf ("*b = %d\n", *b );
` printf ("**c = %d\n", **c );
` printf ("***d = %d\n", ***d );
`
` printf ("%d\n", &a == b );
` printf ("%d\n", &b == c );
` printf ("%d\n", &c == d );
`
` printf ("%d\n", a == *b );
` printf ("%d\n", b == *c );
` printf ("%d\n", c == *d );
`
` return 0;
`}
正确写法应该是这样的:
{% codeblock lang:c %}
#include <stdio.h>
int main (int argc, const char * argv[]) {
int a = 5; //a is int
int * b = &a; //b is a pointer to int
int * * c = &b; //c is a pointer to int *
int * * * d = &c; //d is a pointer to int * *
printf ("a = %d, &a = %p\n", a, &a );
printf ("b = %p, &b = %p\n", b, &b );
printf ("c = %p, &c = %p\n", c, &c );
printf ("d = %p, &d = %p\n", d, &d );
printf ("*b = %d\n", *b );
printf ("**c = %d\n", **c );
printf ("***d = %d\n", ***d );
printf ("%d\n", &a == b );
printf ("%d\n", &b == c );
printf ("%d\n", &c == d );
printf ("%d\n", a == *b );
printf ("%d\n", b == *c );
printf ("%d\n", c == *d );
return 0;
}
{% endcodeblock %}
c 语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两式联接起来,如:( 3+5,6+8 )称为逗号表达式,其求解过程先表达式 1 ,后表达式 2 ,整个表达式值是表达式 2 的值。
如:(3+5, 6+8 )的值是 14 ,(a=3*5, a*4 )的值是 60 ,原因在于赋值运算符优先级高于逗号运算符。
@
66beta 你好 2W我可以帮你做。 Q我408742170
@
plqws 多谢,感觉UI还是一门很需要钻研的学问,受教了~~
@
FENICE 你拿着做对比的例子都是会危害到他人的行为,请问我上Google危害到谁了呢?