[零基础学软件开发6]c语言变量与运算符初探

本文介绍了C语言中变量的基本概念及使用方法,包括变量定义、赋值、运算符优先级等内容,并通过实例帮助初学者理解变量如何存储和传递数值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明:我写这一系列文章在讲述过程中可能用了一些大白话,也可能有的地方墨迹了一些,但旨在把一些没有基础但很想学软件开发的一些人领进门来,另外该文章我同时也在百度经验发表。

我们在银行开卡的时候,程序都让我们多输入几遍密码,我们第一遍输入的密码程序必须能够记住,然后我们第二遍输入的时候它才能拿来跟第一次输入的比,看看是不是一致。

程序运行的时候总是要记录一些数据,我们这节介绍的变量就能胜任这个工作。

在c语言里创建一个变量的格式如下:

数据类型 变量名;

    先说数据类型:数据类型就是我们上节介绍的整数型、字符型、浮点数型等,c语言里用 int 来表示整型,用 float 来表示单精度浮点型,用 char 来表示字符型。对于初学者来说刚开始没必要扣那么细,至于长整型、双精度等用什么表示我们先不介绍,当然我们以后使用的时候会介绍的,因为在cfee3里 int型能够表示的整数范围在-2147483648到2147483647之间,float型能够表示的数的精度范围在6-7位(意思就是整数和小数都算上超过7个就不准确了,例如214748.1937这个数总共超过了7位那后面的937电脑就记得不准了),以后我们涉及到超过这个范围的数据就得用长整型或者双精度型了。

    在说变量名:变量名可以由字母数字和下划线组成不能以数字开头,不能是c语言已使用的关键字。

合法的变量名举例: a    abc    x     _no   a5

不合法的变量名举例:  5a    int    d#

好现在我们定义(或者叫创建)一个能够存放整数的变量

int  v1;

看下面的代码

main()

{

  int v1;

  printf("%d\n",v1);

}

运行结果:


我们只是创建了一个v1变量,并没有向里面存放整数,这个37814176是哪来的呢?是这样的在c语言里如果你没有给你创建的变量赋值,那编译器就会自动给存放一个值。

那怎么把一个整数存放在v1里面呢,c语言里用 = 来表示存放 

v1=100; 读作把100这个整数存放到v1变量里面(或者你可以读作把100赋值给v1变量)

到目前为止我们就接触了5个运算符 + - * / =

c语言里的规则是先执行 * / 后执行 + - 有括号先执行括号里的 最后 执行 =  

看下面的代码

main()

{

  int v1;

  v1=1+6*5; //这里先执行5*6得出30然后执行1+30得出31后把31这个整数存放到v1变量里

  printf("%d\n",v1);

}

上面的代码我用了 //  它是用来注释用的 // 后面的内容编译软件会忽略掉,不认为是c程序内容,就是给代码加解释说明用的。// 一次只能注释一行内容  如果要注释多行 需要用/*  */请按如下方法使用

/*

要注释掉的内容

要注释掉的内容

要注释掉的内容

*/

变量也可以给变量赋值请看下面的代码

main()

{

int v1;

int v2;

v1=10;

v2=v1;//这一行不能读作把v1存放到v2里,应该读作向v2这个变量里存放一个跟v1里相同的整数。

printf("v1里的值是%d,v2里的值是%d\n",v1,v2);

}

现在我考你个问题

int v1;

int v2;

v1=10;

v2=v1;

v1=20;

请问 printf("%d,%d\n",v1,v2); 会输出什么?

好嘞,下节我们介绍从键盘输入数据和写一个顺序结构的小程序。


<think>好的,用户想学习C语言算法的基础知识,并且是零基础入门。首先,我需要确认用户的需求是什么。他们可能刚刚开始接触编程,或者已经有一些其他语言的经验但想转向C语言。由于是零基础,我需要从最基础的部分讲起,确保内容易于理解。 接下来,用户提到了算法,这可能意味着他们希望了解如何用C语言实现常见的算法,比如排序、搜索等。同时,用户提供的引用中有提到递归、斐波那契数列等内容,这些应该是需要覆盖的重点。 我需要考虑如何组织内容结构。通常,学习C语言算法的基础可以分为几个步骤:环境搭建、基础语法、流程控制、函数、数组和指针、基础算法实现。每个步骤都需要详细但简洁的解释,避免信息过载。 环境搭建部分,用户可能需要知道如何安装编译器,比如推荐使用Dev-C++或者VS Code,并给出简单的示例程序,比如“Hello World”。这有助于他们快速上手实践。 在基础语法部分,数据类型、变量运算符是必须的。这里需要注意用简单的例子来说明,比如整数和浮点数的区别,如何声明变量,以及基本的算术运算。 流程控制部分,条件语句和循环是关键。用户需要理解if-else和switch-case的使用,以及for、while循环的区别和应用场景。递归也是一个重要概念,尤其是在实现算法时,比如阶乘和斐波那契数列,这些例子在引用中出现过,应该重点讲解。 函数部分,需要解释如何定义和调用函数,参数传递的方式,以及递归的实现。用户提供的引用中提到了递归在阶乘中的应用,可以用这个例子来说明递归的工作原理,包括栈的概念和终止条件的重要性。 数组和指针是C语言中比较难的部分,但对于算法实现又必可少。需要解释数组的基本操作,如遍历和排序,以及指针的基本概念和内存管理。冒泡排序是一个好的例子,因为它结合了数组和循环的使用。 基础算法实现部分,可以介绍几种简单的排序算法,如冒泡排序、选择排序,以及递归算法如斐波那契数列。这些例子可以帮助用户理解算法的基本原理和代码实现。 最后,推荐学习资源时,需要结合用户提供的引用,比如优快云的教程和书籍推荐,确保引用正确。同时,生成的相关问题应该覆盖用户可能进一步关心的内容,如调试技巧、指针和数组的区别、算法优化等,帮助他们深入学习。 整个过程中,需要注意使用中文,保持语言自然,避免技术术语过多,必要时进行解释。同时,确保所有代码示例使用正确的LaTeX格式,行内公式用$...$,独立公式用$$...$$,并检查语法正确性。回答结构要清晰,分步骤讲解,让用户能够逐步跟随,建立扎实的基础。</think>### C语言算法零基础入门教程 #### 一、环境搭建基础语法 1. **安装编译器** 推荐使用Dev-C++或Visual Studio Code+GCC组合,编写第一个程序: ```c #include <stdio.h> int main() { printf("Hello, World!\n"); return 0; } ``` 该程序通过`printf`函数输出文本[^2]。 2. **数据类型变量** C语言包含基础数据类型: ```c int age = 20; // 整型 float price = 9.8; // 单精度浮点型 char symbol = 'A'; // 字符型 ``` 运算符示例: $$a^2 + b^2 = c^2$$(数学表达式可直接在注释中描述) #### 二、流程控制函数 1. **条件语句** 使用`if-else`实现分支判断: ```c if (score >= 60) { printf("及格"); } else { printf("及格"); } ``` 2. **循环结构** `for`循环计算累加和: ```c int sum = 0; for(int i=1; i<=100; i++){ sum += i; } ``` 3. **函数递归** 递归实现阶乘: ```c int fact(int n) { if(n == 0) return 1; // 递归终止条件 return n * fact(n-1); // 递归调用[^3] } ``` #### 三、数组指针基础 1. **一维数组操作** 冒泡排序算法实现: ```c void bubbleSort(int arr[], int n) { for(int i=0; i<n-1; i++) { for(int j=0; j<n-i-1; j++) { if(arr[j] > arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } ``` 2. **指针初探** 指针变量的关系: ```c int var = 5; int *ptr = &var; // ptr存储var的地址 *ptr = 10; // 通过指针修改变量值 ``` #### 四、基础算法实现 1. **斐波那契数列** 递归非递归实现对比: ```c // 递归版本 int fib(int n) { if(n <= 1) return n; return fib(n-1) + fib(n-2); } // 迭代版本 int fib_iter(int n) { int a=0, b=1, c; for(int i=2; i<=n; i++){ c = a + b; a = b; b = c; } return b; } ``` 2. **二分查找** 有序数组查找算法: ```c int binarySearch(int arr[], int l, int r, int x) { while (l <= r) { int mid = l + (r - l)/2; if (arr[mid] == x) return mid; if (arr[mid] < x) l = mid + 1; else r = mid - 1; } return -1; } ``` #### 推荐学习资源 * 《C Primer Plus》经典教材 * 浙江大学翁恺教授C语言公开课 * 优快云社区《C语言萌新入门》系列教程[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值