#include<stdio.h>int x;//声明,也是定义,在编译时会分配内存地址int y;intadd(){externint x;//只是声明,不会分配内存地址externint y;
x =1;//初始化
y =2;return x+y;}intmain(){int result;
result =add();printf("result=%d",result);return0;}
#include<stdio.h>
/*******************************************************/
//整数常量三种进制
int a = 010;//八进制
int b = 10;//十进制
int c = 0x10;//十六进制
/************************************************************/
/*
整数常量的分类:
整数
无符号整数:后缀u
长整数:后缀l
无符号长整数:后缀lu或ul
*/
int d = 10u;//无符号整数
int e = 10l;//长整数
int f = 10lu;//无符号长整数
/************************************************************/
int main(){
/************************************************************/
printf("a=%d, b=%d, c=%d, d=%d, e=%d,f=%d\n",a,b,c,d,e,f);
/************************************************************/
//在C语言中,字符串常量用""表示
printf("hello,\
dear\n");//字符串换行拼接
printf("hello,""dear""!\n");//字符串拼接输出
/************************************************************/
}
4、#define和const定义常量
编译器处理方式
#define在预处理阶段展开
const在编译阶段使用
类型检查
#define只是进行符号替代,不进行类型检查
const需要进行类型检查
存储方式
宏定义不分配内存,只进行展开
const分配内存
const定义常量
格式: const 数据类型 变量名 = 变量值;
注意:必须严格按照格式进行常量定义,缺一不可
特点:const并不是定义一个常量,只是把变量的存储类变为只读模式,可以理解为常变量
#define的边缘效应
代码实现:
#include<stdio.h>#defineN2+3#defineM(2+3)intmain(){double a;double b;
a =(float)N /(float)2;//float 2+3/2
b =(float)M /(float)2;//float (2+3)/2printf("结果:a = %.2f\nb = %.2f",a,b);}