红叶何时落水
#include<stdio.h>
#include<stdlib.h>
int main() {
#if 1
int a, b;
a = b = 1;//合法的
printf("(a = b = 4 ) = %d\n", (a = b = 4));
//符号的贪心规则,尽可能的组成一个多符号
a = b = 3;
printf("a --- b = %d\n", a --- b);
printf("a = %d b = %d\n", a, b);
a = b = 3;
printf("a -- - b = %d\n", a -- - b);
printf("a = %d b = %d\n", a, b);
a = b = 3;
printf("a - -- b = %d\n", a - -- b);
printf("a = %d b = %d\n", a, b);
// a = b = 3;
// printf("a+++++b = %d\n", (a+++++b));//这里第一个a++返回一个右值无法再次进行++ ++a返回左值
// printf("a = %d b = %d\n", a, b);
// a++返回一个临时变量;++a返回变量的引用
// ++a = 2; 网络上查到的,说是左值,但这里报错
a = b = 3;
printf("a++ + ++b = %d\n", (a++ + ++b));//空格的重要性
printf("a = %d b = %d\n", a, b);
int *p;
//a = 6/*p;空格的重要性
a = 6 / *p;
// a = 1;
// a =- 1;//在老版本 =- 等效 -=, 因此会出现一个问题,‘-’是不是符号位
// printf("a = %d\n", a);
// // a = 019;ANSI C 禁止这种写法
// //单引号与双引号的区别
// //单引号 代表一个整数
// //双引号 代表一个地址 (const 字符串数组的地址)
// printf("'a' = %d\n", 'a');
// printf(" \"a\" = %p\n", "a");
// a = 'abcd';//按照字节顺序,一个字节一个字节的填满a的地址
// printf("'abcd' = %x\n", a);
#endif
#if 0
int a = 7;
int b = 0;
b = -a++;//=>b = -7;a = 8;
printf("a = %d b = %d\n\r", a, b);
int arr[5] = {0, 1, 2, 3, 4};
int *p = arr;
printf("*p++ = %d\n\r", *p++);
printf("*p = %d\n\r", *p);
printf("(*p)++ = %d\n\r", (*p)++);
printf("*p = %d\n\r", *p);
for(int i = 0; i < 5; i++)
printf("arr[%d] = %d\n\r", i, arr[i]);
#endif
}