C语言复习

a. 引用外部变量

如果需要在一个源文件中引用另一个源文件中定义的变量,只需要在引用的文件中将变量加上 extern 关键字的声明即可

  1. addtwonum.c
#include<stdio.h>
 // 外部变量声明
 extern int x;
 extern int y;
 int addtwonum()
 {
 return x + y;
 }
  1. review.c
#include<stdio.h>
 // 定义两个全局变量
 int x = 1;
 int y = 2;
 int addtwonum();
 int main(void)
 {
 int result;
 result = addtwonum();
 printf("result 为: %d\n", result);
 return 0;
 }
b. 定义常量
  1. 使用 #define 预处理器
#define identifier value
  1. 使用 const 关键字
const type variable = value;
c. 杂项运算符
运算符 描述 实例
sizeof() 返回变量的大小。 sizeof(a) 将返回 4,其中 a 是整数。
& 返回变量的地址。 &a; 将给出变量的实际地址。
* 指向一个变量。 *a; 将指向一个变量。
? : 条件表达式 如果条件为真 ? 则值为 X : 否则值为 Y
int a = 4;
 short b;
 double c;
 int* ptr;
 // sizeof 运算实例
 printf("变量 a 的大小 = %lu\n", sizeof(a));
 printf("变量 b 的大小 = %lu\n", sizeof(b));
 // & 和 * 运算符实例
 ptr = &a; // ptr 现在包含 'a' 的地址
 printf("a = %d\n", a);
 printf("*ptr = %d\n", *ptr);
 // 三元运算符
 a = 10;
 b = (a == 1) ? 20 : 30;
 printf("b 值 是%d \n", b);

d. vs2019 使用 scanf 读取遇到的错误

C6031错误

// 解决方法 将 scanf 换成 scanf_s
 int buy;
 scanf_s("%d", &buy);
  printf("buy = %d ", buy);

C4996错误

[解决方法](https://www.cnblogs.com/xmdykf/p/12317594.html

e. 全局变量与局部变量在内存中的区别
  • 全局变量保存在内存的全局存储区中,占用静态的存储单元;
  • 局部变量保存在栈中,只有在所在函数被调用时才动态地为变量分配存储单元。
f. 枚举变量的定义
  1. 先定义枚举类型,再定义枚举变量
enum DAY{      MON=1, TUE, WED, THU, FRI, SAT, SUN};enum DAY day;
  1. 定义枚举类型的同时定义枚举变量
enum DAY{      MON=1, TUE, WED, THU, FRI, SAT, SUN} day;
  1. 省略枚举名称,直接定义枚举变量
enum{      MON=1, TUE, WED, THU, FRI, SAT, SUN} day;
g. 函数指针

通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。

函数指针可以像一般函数一样,用于调用函数、传递参数。

// 声明
typedef int (*fun_ptr)(int,int); // 声明一个指向同样参数、返回值的函数指针类型
#include <stdio.h>
 int max(int x, int y)
 {
 return x > y ? x : y;
 }
 int main(void)
 {
 /* p 是函数指针 */
 int (* p)(int, int) = & max; // &可以省略
 int a, b, c, d;
 printf("请输入三个数字:");
 scanf("%d %d %d", & a, & b, & c);
 /* 与直接调用函数等价,d = max(max(a, b), c) */
 d = p(p(a, b), c);
 printf("最大的数字是: %d\n", d);
 return 0;
 }
posted @ 2020-02-17 09:30  小喵钓鱼  阅读(205)  评论(0编辑  收藏  举报