杨雨三金头像

C语言编程基础 Day3

1.  变量

面试题:全局变量和局部变量区别:

局部变量

全局变量

定义位置

在函数内部定义的变量

在函数外部定义的变量

存放位置

栈区

全局区

生命周期

仅在本函数内部

整个程序

作用域

仅在本函数内部

整个程序

初值

未赋初值,初值为随机值

未赋初值,初值为0

2.  常量

2.1.  概念

在程序运行期间其值不发生变化的量

2.2.  分类

整型常量:十进制、八进制等整型数值

int \short\long

字符常量:用单引号引起来的一个字符

char类型

'a' '\0' '\n' ' '

字符串常量:用双引号引起来的一串字符

字符数组存储,字符串以\0作为结束标志

"hello" "abc" "a"

sizeof("hello") //6

浮点常量:小数

float/double

指数常量:指数表示

2*10^3 -> 2e3 3*10^-5 -> 3e-5

标识常量:用符号进行标识一个常量

宏定义

格式:#define 宏名 常量或表达式

特点:原样替换(不要直接计算结果,表达式是什么就直接替换)

一般宏名大写,和其他变量区分

X*X/X*X= 2+1*2+1/2+1*2+1=7

a=a/7=1

练习:写一个"标准"宏MIN,这个宏输入两个参数并返回较小的一个;(富士安全,广域科技,华辰泰尔,鲁科安全,神戎电子,中安云科,中维世纪,晟安信息,苏州特点电子科技)

#include <stdio.h>
#define MIN(a, b) (a < b ? a : b)
int main(int argc, char const *argv[])
{
    printf("%d\n", MIN(5, 4));
    return 0;
}

3.  输入输出函数

学习一个函数需要考虑三要素:功能、参数、返回值

3.1.  标准输入输出

3.1.1.  输出函数printf

int printf(const char *format, ...);
功能:按照指定的格式向终端输出数据
参数:format:输出数据的格式,传递字符串
        %d - int
        %ld - long
        %c - char
        %f - float
        %lf - double
        %s - 字符串
        %p - 地址
        %e - 指数
        %#x - 十六进制
        %#o - 八进制
        %u - 无符号数
      ...:不定参的函数
  返回值:正确输出数据的个数

注意:

1.  如果是有符号数用%u打印,会默认将有符号转为无符号,最高位不在表示符号位,而是实际的数据位

2.  %-m.nf,m代表是位宽,n小数点后的位数,-代表是左对齐,默认是右对齐

如果m<实际数据的宽度,按照实际宽度输出

如果m>实际数据宽度,默认在左侧补空格

参考代码:

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int num = 100;
    float ch = 2e3;
    printf("%d\n", num);
    printf("%#o\n", num);//八进制
    printf("%#x\n", num);//十六进制
    printf("%e\n", ch);//打印指数
    return 0;
}

3.1.2.  输入函数scanf

int scanf(const char *format, ...);
功能:按照指定格式从终端输入数据
参数:format:传字符串,同printf
      ...:地址,对变量取地址,&
返回值:正确输入数据的个数

注意:

scanf输入数据时,第一个参数是字符串,指定输入数据的格式,其中不能包含\n或其他任意字符;其余的参数要传递地址。

参考代码:

#include <stdio.h>
int main(int argc, char const *argv[])
{
    //1.输入一个数据
    int num;
    scanf("%d", &num);//&num:变量的地址
    printf("%d\n", num);
    //2.一次输入多个相同类型的数据
    // int num, sum, var;
    // scanf("%d %d %d", &num, &sum, &var);//&num:变量的地址
    // printf("%d %d %d\n", num);
    //3.一次输入多个不同类型的数据
    int num;
    char ch;
    float var;
    //当scanf中需要输入字符时,格式之间用空格隔开,可以将一个或多个空格、tab、回车进行回收
    scanf("%d %c %f", &num, &ch, &var);
    // 当scanf指定格式时,输入数据时按scanf中指定的格式进行输入数据
    // scanf("%d-%c-%f", &num, &ch, &var);
    printf("%d %c %f\n", num, ch, var);
    
    char a, b, c;
    //此时scanf中空格起到垃圾字符回收的作用
    scanf("%c %c %c", &a, &b, &c);
    printf("%c %c %c\n", a, b, c);
    return 0;
}

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/wochaonilvlvlvlv/article/details/147050178

文章来源转载

评论

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--