1.extern 既可以在同文件中使用也可以跨c文件使用,在同文件可以跨作用域。
2.全局变量 int a;初始化默认为0
局部变量int a;初始化可能为随机值,有些平台可能无法通过
如果加static默认为0
3.static既可以修饰全局变量也可以修饰局部变量
static局部变量初始化值执行一次
void fun()
{
int a=1;
printf("a=%d",a++);//开辟的空间随用随开,执行程序后消失
static int b=1;
printf(" b=%-5d",b++);//static的初始化值执行一次
}
int main(void)
{
int a;
for(int i=0;i<5;i++)
{
fun();
putchar(10);
}
}
二://全局变量, 会带来命名污染,全局可用,避免传参。
//一个全 局变量,天然的拥有外延性,可以被其它的文件所引用,extern
//static 修饰全局变量以后, 处延性消失,变成本文件内部的全局变量,即使两个c文件定义的重名全局变量,也不会有问题,加static后局限在本文件中,所以在c文件中如果加咯static的全局变量,在其他C文件中即使用extern也无法调用。
三。
字符串常量在C语言中是怎么处理的:
//字符串是,是由双引号,引起的一串字符。系统在字符串常最后添加了一个字符“\0' ,
//大小,存储//c语言,是如何处理常量字符串的。将其处理一- 个向data段这段字符串的首地址//对比数组,三要素,起始地址,步长,范围
//char*能不能代表了整个字符串,起始地址 步长 \0’可以带表整个字符串 int (char)0x035263*
换行的几种形式
- puts(" ");//会打印\0,所以起换行作用
- puts(a[]);//打印完会自动换行
putchar(10);
printf("\n");
字符串的输入
1.scanf 遇到空格就结束输入
2.gets 可以读取空格
3.fgets(a,10,stdin);
数组名 字节个数 stdin
需注意,数组里要放\0,故肯定数组里少一个字节元素