## 学习笔记day03-C语言基础:常量与变量、输入输出函数

学习笔记day03-C语言基础:常量与变量、输入输出函数

三、常量与变量

1.常量
1) 整型常量 10 0888 0x15 
    
2) 浮点型常量 3.14 3.14e+2
    
3) 字符型常量 'a' 'b' '1'
    
4) 字符串常量
    "123” "a"
    由多个字符构成
    字符串末尾有'\0', 代表字符串的结束
    有效字符:第一个'\0'前的字符
    "123" --> '1' + '2' + '3' + '\0'
    "a"     --> 'a' + '\0'
    
5)标识符常量(宏定义)
    #define 标识符 常量值
    #define MAX 100
    宏定义在预处理阶段,宏定义替换
    eg:
    #include <stdio.h>
    #define MAX 100
    #define SUM 3 + 4
    int main(int argc, char *argv[])
	{ 
    	printf("%d\n", MAX); -->printf("%d\n", 100);
    	printf("%d\n", SUM * 10); -->printf("%d\n", 3 + 4 * 10);
    	return 0;
	} 

2.变量

​ 变量就是用来保存不同的常量值

1)定义 <存储类型> <数据类型> <变量名>;

    存储类型:
		1auto 自动存储类型,系统自动分配空间自动释放空间
            
        2register 将变量的空间申请在CPU内部的寄存器中,如果申请失败,会转为auto类型
            
        3extern 外部调用
           eg:
			2.c:
			extern int a;//extern外部调用1.c当中的变量a
            int main(int argc, char *argv[])
            { 
                printf("a = %d\n", a);//打印1.c中已经初始化的值
                return 0;
            } 
			1.c:
			int a = 100;//全局变量

        4static
           static修饰全局变量、函数
            	限制全局变量、函数的作用域,只能在本文件中使用隐藏
           static修饰局部变量
            	局部变量的初始化操作只被执行一次
            	延长局部变量的生命周期,随着整个程序的结束而结束
    数据类型:
		char short int long float double...
    变量名:
		标识符,满足命名规则
        由字母、数字、下划线构成
        不能以数字开头
        不能和关键字重名
    eg:
		auto int a; --> int a;
   		register int b;
		extern int c;
		static int d;

2)变量的初始化 在定义变量的时候赋予初值
    int a = 10;				//初始化变量a的值为10
3) 变量的赋值
    int a = 10;
4)全局变量与局部变量	
    局部变量: 
		1)在模块{}内部定义的变量为局部变量
        2)系统为局部变量开辟的空间随模块的结束而回收
        3)局部变量在定义时未初始化,该局部变量的值是随机值
    全局变量:
		1)定义在模块{}外部
        2)全局变量存储在全局变量区,在程序结束之前都可以访问
        3)全局变量未初始化,默认为0
        4)全局变量的作用范围在本文件中
3.补充:虚拟内存空间
在这里插入图片描述

四、输入输出

1.数据输出
1)字符输出函数
    头文件:
		#include <stdio.h>
	putchar(c)
        将字符输出显示到显示屏上
        c:字符常量、变量、表达式
2)字符输入函数
    头文件:
		#include <stdio.h>
	getchar()
        从键盘上获取一个字符数据
        返回值:成功,返回键盘上输入的字符数据,失败,-1
    eg:
	int ch;
	ch = getchar();
	printf("ch = %c\n", ch);
2.格式输出函数printf
printf("格式控制字符串", 参数列表);
格式控制字符串:
	1)格式控制符
        用于输出指定的格式 %[指定字符]
        %p 	   --> 打印变量的地址
        &变量名 --> 取该变量的地址
    2)普通字符
        原样输出
参数列表:
	要输出的数据,各个参数之间用 , 隔开,并且参数列表中参数的个数要与格式控制符的个数相对应
格式符

在这里插入图片描述

修饰符在这里插入图片描述
3.格式输入函数scanf
scanf("格式控制符", 地址表);
1)功能: 
	按照规定的格式从键盘上输入数据,并保存在地址表中指定的存储单元中
        
2)格式控制符:
	%d --> 输入的整型数据
    ....
        
3)地址表:
	变量的地址,用取地址符号&
        
4)输入数据结束的标志:
    回车 tab键 空格 超出域宽 输入错误
        
5)连续输入整型数据:
	当连续输入整型数据时,空格,tab,回车可以作为输入的分隔符
        
6)连续输入字符型数据:
    空格、tab键是有效数据
    %*c抑制符,抑制当前的字符作为输入数据(消除脏字符)
    scanf("%c%*c%c%*c%c",&ch1,&ch2,&ch3);
	printf("ch1 = %c ch2 = %c ch3 = %c",ch1,ch2,ch3);
        
7)输入字符串
    %[^\n]将空格作为字符串中的字符输出
    eg:
char str[11] = {0};
scanf("%s",str);//hello world
puts(str);//hello

char str[11] = {0};
scanf("%[^\n]",str);//hello world
puts(str);//hello world
格式符号

3.格式输入函数scanf

scanf("格式控制符", 地址表);
功能: 
	按照规定的格式从键盘上输入数据,并保存在地址表中指定的存储单元中
格式控制符:
	%d --> 输入的整型数据
    ....
地址表:
	变量的地址,用取地址符号&
格式符号

在这里插入图片描述
在这里插入图片描述
4.字符串输入输出函数gets puts

char * gets(char *s)
	char *s:字符数组首地址
	将键盘上的字符串输入以回车结束,保存在字符数组中,并自加上\0"
int puts(const char *s)
    const char *s:字符串地址
    打印显示字符串数据,自动换行
    eg:
		char str[32] = 0;
		gets(str);
		puts(str);
		puts(" ");

五、数据类型的转换

自动换行
	1)赋值运算操作时,=右边表达式的数据类型转换成与=左边相同的数据类型
	int a = 10,c = 0;
	double b = 3.14;
`	c = a * b;
	2)多种数据类型混合运算时会发生数据类型的转换
        低精度 --> 高精度
        char->short->int->long->double<-float
        signed->unsigned
手动换行(强制转换)
    eg:
		float b = 3.14;
		printf("b = %d\n",(int)b)//b = 3
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值