【Linux基础与应用开发】数据结构--C语言1:数据类型、基本数据类型、变量常量、运算符、输入输出

hello world小试

touch hello.c	// 创建
vim hello.c	// 编辑
#include <stdio.h>
int main(void)
{
	print("hello world\n");
	return 0;
}

:wq保存退出

gcc hello.c	// 编译器编译成可执行文件出a.out
./a.out	// 在终端输出编译文件的结果:hello world

数据类型

1.基本类型

-整型:signed、unsigned、short、int long、long long
-字符型:char
-实型:float、double
枚举型:enum

2.构造类型

-数组
-结构体:struct
-共用体:union

3.指针类型
4.空类型:void

基本数据类型

逻辑类型:true和false
整数类型:char、short、int和long
浮点类型:float和double
void类型:无返回

强制数据类型转换:

int a=1float b=2.5;
b=(int)(a+b);	// b=3

常量

变量

说明方式:

存储类型 数据类型 变量名;
	存储类型关键词:auto、register、static和extern
	-auto只能在某个程序范围内使用,函数体或函数中的复合语句
	-register寄存器型,变量存放于CPU寄存器中,加快进程
	-static静态存储类型,函数体局部,函数外全局
		-局部变量时:固定地址,不存放在堆栈;程序不结束就不会消失,继续保存上次调用存入的数值
	-extern外部参照引用型,在函数体外说明的变量
	数据类型可以是基本数据类型也可以是自定义数据类型

运算符

算术运算符:+ - * / % ++ –
关系运算符:> >= < <= == !=
逻辑运算符:!逻辑反 &&逻辑与 ||逻辑或
位运算符:

~	位逻辑反,所有位取反
& 位逻辑与,每位相与
| 位逻辑或,每位相或
^ 位逻辑异或,每位异或,相同为0相异为1
>> 右位移
<< 左位移
	-位移运算形式:运算量 运算符 表达式
	-如`unsigned char a=0xe4,b;
	    b=a<<3;`
	-位移3位相当于乘上2^3

赋值运算符=
赋值复合运算符+= -= *= /= %= &= |= ^= >>= <<=
条件运算符? : 三目运算符,形式是:
表达式1 ? 表达式2 : 表达式3
-成立就是2,不成立就是3

// 如:
int x=82,y=101;
x>=y?x+18:y-100// 运算结果为1
x<(y-11)?x-22:y-1	// 结果为60

特殊运算符:
-逗号运算符
-sizeof(),只针对数据类型而不针对变量,sizeof(double)…只看占用多少字节
运算符优先级

输入输出

字符输入函数getchar():从键盘输入一个字符

#include <stdio.h>
int main(void)
{
	int c;
	printf("Enter a character: ");
	c=getchar();
	printf("%c--%d->hex%x\n",c,c,c);

	return 0;
}
// 结果:
// Enter a character: A
// A--65->hex41

格式输入函数scanf(“格式控制符”,地址表):从键盘输入存入地址表指定;地址表:变量的地址,常用取地址符&

scanf("%2d%*3d%2d",&a,&b);
// 输入12 345 67,抑制3位,故a=12,b=67
scanf("%c%c%c",&c1&c2&c3);
// 输入a b c,c1=a,c2= ,c3=b
-格式输入函数在遇到空格、TAB、回车、非法输入、宽度受限时会认为数据结束

字符串输入函数gets():

-char *gets(char *s)
-键盘输入回车结束的字符串放入字符数组中,并*自动加‘\0’*
-输入串长度应小于字符数组维数;gets并不以空格作为字符串输入结束的标志,与scanf不同
int main(void)
{
	char string[5];
	printf("enter a string : ");
	gets(string);
	printf("%s\n",string);
	return 0;
}

Linux下用户编译手册:如要查gets()函数可以在终端输入man gets

-少用gets(),用fgets()

字符串输出函数puts

-int puts(const char *s),输出字符串换行
-字符串数组必须以'\0'结束
#include <stdio.h>
int main(void)
{
	char string[100] = "How are you?";
	puts(string);
	return 0;
}

清理输入函数留下的垃圾

方法1:用getchar()清除,使用一次可以吃掉一个回车
方法2:使用格式串空格或%c

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值