自增自减与指针相关

2019-07-30  本文已影响0人  mark_x

自增自减

简单的使用i++不会产生什么问题,比较麻烦的是使用变量与变量自增(自减)混在一起的时候,下面是关于这个问题的分析。

// 自增自减写在变量前后的区别
// 如果++写在变量的前面,则会先将变量自增,再用自增后的结果参与运算
// 如果++写在变量的后面,则会先将变量的值参与运算,再将变量自增
// 自减与自增一样
int a = 10;     // a -> 10
int b = a++;    // b -> 10  a -> 11
int c = ++a;    // c -> 12  a -> 12
printf("a --> %i\n", a);    // a --> 12
printf("b --> %i\n", b);    // b --> 10
printf("c --> %i\n", c);    // c --> 12

int a = 10;         // a --> 10
// int b = (a++) + (++a);           // a --> 12     b --> 22
// int b = (a++) + (a++);           // a --> 12     b --> 21 
int b = (++a) + (++a);              // a --> 12 b --> 23 
--------------------- 
作者:crazy_zhangcong 
来源:CSDN 
原文:https://blog.csdn.net/crazy_zhangcong/article/details/87916766 
版权声明:本文为博主原创文章,转载请附上博文链接!

指针变量

指针变量进行自增自减时,其指向位置。

获取字符串的长度

#include <stdio.h>

#define MAX 1024

int main()
{
        char str[MAX];
        char *target = str;
        int length = 0;

        printf("请输入一个字符串:");
        fgets(str, MAX, stdin);

        while (*target++ != '\0')
        {
                length++;
        }

        printf("您总共输入了 %d 个字符!\n", length - 1);   // 注意length -1

        return 0;
}

注意: fgets 函数会把换行符('\n')也一并读取进去。

考虑一种简单地情况,字符串str只有一个字符。

第一次循环:

第二次循环:

第三次循环:

上一篇下一篇

猜你喜欢

热点阅读