编程环境:Visual Studio ;
电脑系统:WIN10 ;
一、定义变量与初始化
一般编程中,考虑编程环境及C89、C99标准,稳妥的做法是:定义变量的同时进行初始化;
1、目的是j的定义在i变量赋值的后面,是否能够运行:
2、调用子函数add,是否完成加法运算?
3、调用子函数add1,是否完成加法运算?取地址&
4、调用子函数add2,返回值赋给未初始化变量sum?
代码如下:
(1)head.h 头文件
//#pragma once#include <stdio.h>add(int a, int b, int k);add1(int a, int b);
(2)add.c
#include "head.h"add(int a, int b, int k){k = a + b;}add1(int a, int b, int *k){*k = a + b;}add2(int a, int b){return (a + b);}
(3)main.c
#include "head.h"int main(){int i;i = 3;int j = 1;int sum;printf("i=%d,j=%d\n", i, j); //目的是j的定义在i变量赋值的后面,是否能够运行/* */add(i, j, sum); //调用子函数add,完成加法运算; printf("sum=%d\n",sum);add1(i, j, &sum); //调用子函数add1,完成加法运算;对变量sum取地址printf("sum=%d\n", sum);sum=add2(i, j); //调用子函数add2,返回值赋给未初始化变量sumprintf("sum=%d\n", sum);return 0;}
说明:
(1)变量i定义时初始化与定义后,在初始化;对变量j无影响;
(2)如果定义一个变量,不初始化,就参与后续的计算,会报错:
示例1:
示例2:
(3)未初始化变量,取地址参与运算时,不会出错:
(4)未初始化变量,参与运算时,以下情况(可理解为返回值对sum赋值)不会出错:
参考:
1、 /compile/11
2、C语言变量定义和赋值