坑爹代码集、

文章目录

坑爹代码集

int i,j;
i = 3;
j = 4;
int k
**k = i+++j;    //※ 算术运算符优先级比单目低。
//其实就等:  K = (i++)+j;**
int a,b,c;
a = 3;
a += (a -= (a*a));
// a += (a -= 9);
// a += (a= a - 9);
// a += (-6);
// a = a + (-6);
// a = -3;
int a ;
a = 5;
printf("你好, a = 5的值是%d",a = 8); 
// a = 8 是再赋值。
printf("a的值是%d",a);
// a = 8 变量值被改变了。


int a = 5;   //  除非有特殊需要,不然不好理解。
if((a = 6) > 0)
{
...
...
}

指针:

eg: &*p1

&*p1;  ->  &(*p1)     // &取地址运算符,  *指针运算符    优先级相同,但是需要从右到左结合
p1 = &*p1 = &a;  // 这三个都一样

p2 = &*p1 ;   //p2 指向了 a的地址。

**&a : &是取地址运算符,是指针运算符, 这两个优先级相同,需从右往左结合。

*&a = *(&a);    //   --->   *&a ==> a 

p1 = &a; —> *p1 = * (&a) —> *p1 代表的是 p1这个指针变量指向的变量的值。 —> a

*(p1)++

*p1 --> a
(*p1)++    --> a++

*p1++ // 指针变量的地址自加1 不建议使用

*(p1++)

地址是个数字: 按照你给的变量的类型进行自加。

指针变量自+1,表示地址值+1 , 但是这种本来是自加1 的操作,对于指针来说不一定是加一,取决于此指针变量所指向的变量的类型。那到底如何得知此类型要加几呢。 使用 sizeof( ) 函数来得知。

eg:

int a = 5;
int *P;
p = &a;
*p++;  // *(p++)    // p++ -> 把此指针变量所指向的地址加“1”。
printf("%d\n",sizeof(int));
//此处int占用4个字节,所以 *p++ 就是给此指针变量所指向的变量地址每次加4,才是自加1之后的地址

跳到此地址之后不知道后面还有没有其他变量在使用此地址,所以不建议使用。

eg;

int *max,*min,a,b;
a = 4;
b = 8;
max = &a;
min = &b;
if(a<b)
	{
		p = max; // 现在p指向a了
		max = min;  //max指向了b
		min = p;  // min 指向了a ..
	}
printf("a=%d,b=%d"\n",*max,*min);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨优秀&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值