编程环境:Visual Studio 2017;
电脑系统: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,返回值赋给未初始化变量sum
printf("sum=%d\n", sum);
return 0;
}
说明:
(1)变量i定义时初始化与定义后,在初始化;对变量j无影响;
(2)如果定义一个变量,不初始化,就参与后续的计算,会报错:
示例1:
示例2:
(3)未初始化变量,取地址参与运算时,不会出错:
(4)未初始化变量,参与运算时,以下情况(可理解为返回值对sum赋值)不会出错:
参考:
1、 https://c.runoob.com/compile/11