首页 > 其他分享 >C语言学习心得

C语言学习心得

时间:2023-08-14 13:57:36浏览次数:37  
标签:int 学习心得 iValue C语言 运算符 click 表达式 赋值

C语言学习心得

auto变量和static变量

  1. auto变量:每次执行到该变量定义语句时,都会产生一个新的变量,并且重新对此初始化。

    注意:该关键字在C语言与C++中的语义不同,在C++中是用于变量类型自动推断。为了让类似下面的代码能够在VS2022中运行而不报错,

    auto int a = 1;
    

    要这样操作:

    1. 打开正在编辑的*.cpp文件的“属性”。
    2. 选择“C/C++”,然后选择“高级”。
    3. 在“编译为”选项中,选择“C代码”。应用并确定即可。
  2. static变量:表示静态变量。其初始化操作只在第一次执行时起作用,在语句块执行期间,static变量将始终保持它的值。

    如下面例子:

    #include <stdio.h>
    
    void click(){
        static int sum = 0;
        sum++;
        printf("此时点击量:%d\n", sum);
    }
    
    int main(){
        click();
        click();
        click();
        click();
        click();
        return 0;
    }
    

    输出为:

    此时点击量:1
    此时点击量:2
    此时点击量:3
    此时点击量:4
    此时点击量:5
    

    由此可见,sum的值并没有因为click()的反复执行而被初始化。

自增、自减运算符的操作顺序

  1. n = ++in = --i自加或自减,进行赋值操作。

    例如:

    int i = 3;
    n = ++i;
    printf("n = %d", n);
    

    变量i先自加再赋值给n,因此输出为:

    n = 4
    
  2. n = i++n = i--进行赋值操作,自加或自减。

    例如:

    int i = 3;
    n = i++;
    printf("n = %d", n);
    

    变量i先赋值给n再自加,因此输出为:

    n = 3
    

    (运算符号在前面就先运算,在后面就先赋值)

逗号运算符

逗号表达式的一般形式如下:

表达式1, 表达式2, ..., 表达式n

其求解过程是:先求解表达式1,再求解表达式2,一直求解到表达式n。整个逗号表达式的值是表达式n(最后一式)的值

但是观察下面的表达式:

Value = 2+5, 1+2, 5+7;

上述语句中Value的值是7,并非12。因为赋值运算符的优先级比逗号运算符高,因此先执行赋值运算

如果要先执行逗号运算,可以使用括号运算符,代码如下:

Value = (2+5, 1+2, 5+7);

使用括号之后,Value的值为12。

复合赋值运算符

该运算符返回运算得数;如果连续使用符合赋值运算符,遵循从右往左计算的原则。

如:

int iValue = 7;
iValue += iValue *= iValue /= iValue - 5;
printf("%d\n", iValue);

根据从右往左的顺序,计算顺序如下:

  1. 计算iValue /= iValue - 5:先得出iValue - 5 = 2,然后计算iValue /= 2iValue / 2 = 3.5,由于iValueint类型,所以直接去掉小数部分,得数为3
  2. 计算iValue *= 3,即3 * 3 = 9,得数为9。
  3. 计算iValue += 9, 即9 + 9 = 18,得数为18。

因此,打印结果为:

18

int值超出范围之后...

int值的范围是-2147483648 - 2147483647。当达到了能表示的最大值,会重新从起始点开始

代码示例:

int a = 2147483647, b = -2147483648;
printf("%d %d\n", a, a + 1);
printf("%d %d\n", b, b - 1);

由于a已经到达最大值,所以再加会重新返回最小值;而b已经达到最小值,所以再减会重新达到最大值

因此,上述代码输出如下:

2147483647 -2147483648
-2147483648 2147483647

当然,对于其他的数据类型也是这样,可以将其看作指针体重秤,超过最大值就会返回最小值,(小于最小值就会达到最大值:虽然在体重秤上是不可能的)

标签:int,学习心得,iValue,C语言,运算符,click,表达式,赋值
From: https://www.cnblogs.com/ziyangdev/p/17628432.html

相关文章

  • C语言学习 函数
    一.函数的概念C语⾔中的函数就是⼀个完成某项特定的任务的⼀⼩段代码。在C语言中,我们常见的函数类型有两种:库函数和自定义类型函数。二.库函数#库函数1.标准库和头文件C语言标准中规定了C语言的各种语法规则,C语言并不提供库函数;ANSIC规定了一些常用的函数的标准,被称为标准库。C语......
  • C语言实现字符串的模式匹配
    一.模式匹配字符串的模式匹配算法是用来查找一个字符串中是否存在另一个指定的字符串(即模式)的算法。常见的模式匹配算法包括暴力匹配算法、KMP算法、Boyer-Moore算法和Rabin-Karp算法。暴力匹配算法:暴力匹配算法也称为朴素匹配算法,是最简单的一种字符串匹配算法。它从主串的第一......
  • Chameleon算法的C语言实现及代码解析
    Chameleon算法的C语言实现及代码解析在计算机科学领域中,算法的设计和实现是非常重要的。而在大量的算法中,Chameleon算法以其独特的特点和应用广泛受到了研究者们的关注。本文将围绕Chameleon算法的C语言实现及其代码解析展开,通过具体的示例来解释其原理和应用。Chameleon算法的C......
  • C语言快速排序降序实现
    C语言快速排序降序实现快速排序是一种常用的排序算法,其灵活性和高效性使其成为程序员们喜爱的排序方式之一。在这篇文章中,我们将探讨如何使用C语言来实现快速排序算法,并实现一个降序排序的例子。C语言快速排序降序实现快速排序算法基于分治的思想,通过选取一个基准元素,将待排序......
  • C语言教程:逐行读取数字的方法
    C语言教程:逐行读取数字的方法在C语言的编程开发中,经常需要处理字符串或文本文件,并从中提取出数字。本文将介绍逐行读取数字的方法,帮助初学者更好地理解和运用。C语言逐行读取数字的方法一、引言数字在计算机编程中扮演着重要的角色,应用广泛。而在处理字符串或文本文件时,需要......
  • C语言中如何获取数组的中位数
    C语言中如何获取数组的中位数在C语言编程中,获取数组的中位数是一项常见而重要的任务。中位数是一个数组中的一个特殊值,它将该数组分为两个等长的部分。当数组长度为奇数时,中位数就是位于数组中间位置的元素;当数组长度为偶数时,中位数是中间两个元素的平均值。7C语言中如何获取数......
  • 利用C语言递归函数解决求5的方法是什么
    利用C语言递归函数解决求5的方法是什么在C语言编程中,递归是一种非常有用的技术,它能够简化问题的解决过程并提高代码的复用性。本文将以求解数字5为例,介绍如何利用C语言递归函数来实现这一任务。9利用C语言递归函数解决求5的方法是什么首先,让我们明确问题的定义。求解数字5的方......
  • C语言求凸包的算法及实现
    C语言求凸包的算法及实现凸包问题是计算几何中的一个重要问题,它描述了一个点集中最小的凸多边形。在本文中,我们将探讨使用C语言来解决凸包问题的算法及其实现。C语言求凸包的算法及实现凸包算法的关键在于如何确定一个点是否在凸包上。对于一个给定的点集,我们可以选择一点作为......
  • c语言笔记1
    C语言笔记1(c简介,环境设置,程序结构,Linux基本知识)1.c简介c语言是一种通用的高级语言,最初是为开发unix操作系统而设计的。unix操作系统,c编译器,和几乎所有的unix应用程序都是用c语言编写的。由于各种原因,c语言现在已经成为一种广泛使用的专业语言。1.易于学习2.结构化语言3.......
  • c语言:输出1~100之间的奇数
    方法一:用for#include<stdio.h>intmain(){ inti=1;intp=0;for(i=1;i<=100;i++){ p=i%2; if(p==1) printf("%d",i); }return0;}方法二:用while#include<stdio.h>intmain(){inti=1;while(i<=1......