数据类型
1-数据类型长度.c
#include <stdio.h> //包含头文件(函数的声明 自定义类型的声明 宏定义)
int main() //int函数(返回值)的类型 main函数名(所有工程有且只有一个main函数)
{
printf("int占%ld个字节\n", sizeof(int)); //输出函数 sizeof关键字 求数据类型的长度
printf("char占%ld个字节\n", sizeof(char));
printf("short占%ld个字节\n", sizeof(short));
printf("long占%ld个字节\n", sizeof(long));
printf("float占%ld个字节\n", sizeof(float));
printf("double占%ld个字节\n", sizeof(double));
return 0; //返回值(前后呼应)
}
2-数据运算.c
```c
#include <stdio.h>
#include <string.h>
int main()
{
/*char *s = "hello\0world"; //\0字符串结束标志(一个字符)
printf("%lu\n", strlen(s)); //strlen求字符串长度 遇到字符\0结束
char ch = '\0';
printf("%d\n", ch); //字符\0的asc码就是0,在内存中就是数字0*/
char a[1000] = {0};
int i;
for (i = 0; i < 1000; i++)
{
a[i] = -1 - i;
printf("%d ", a[i]);
}
printf("\n%lu\n", strlen(a));
return 0;
}
3-常量.c
```c
#include <stdio.h>
#define PRICE 10 //宏定义 常量
int main()
{
PRICE * 100; //等价于 10 * 100
// PRICE = 100; //常量不能修改
0x100 * 1l; //0x100 十六进制的常量 l表示1是长整型常量
1.11f * 1; //f表示浮点型常量
int a; //变量,程序运行过程中值可以被修改
const int b = 1; //b是只读变量
//b = 2; //不能通过变量b来修改对应内存的值,只能通过其他方式修改(引用 指针)
int *p = (int *)&b;
*p = 2;
printf("b = %d\n", b);
return 0;
}
```4-输入输出.c
#include <stdio.h>
int main()
{
int a, b;
//scanf("%d", &a); //从标准输入获取一个数字,存放在变量a中 参数一定是地址
//printf("a = %d\n", a);
//scanf("%d%d", &a, &b);
//printf("a = %d b = %d\n", a, b);
char ch;
//scanf("%c", &ch);
//printf("ch = %c\n", ch);
a = 100;
printf("%d\n", a);
printf("%o\n", a); //八进制输出
printf("%x\n", a);
//printf("%p\n", a); //十六进制输出
float c = 1.1111;
printf("%f\n", c); //输出浮点型
printf("%5.2f\n", c);
return 0;
}
5-取整取余.c
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num;
scanf("%d", &num);
if (num < 1000 || num > 9999)
{
exit(1); //退出程序
}
int ge = num % 10;
int shi = num / 10 % 10;
int bai = num / 100 % 10;
int qian = num / 1000;
printf("%d\n", ge * 1000 + shi * 100 + bai * 10 + qian);
return 0;
}
6-强制类型转换.c
#include <stdio.h>
int main()
{
int a = 1;
char ch = 'z';
//a = (int)ch;
a = ch; //隐式转换
const int num = 1;
int *p = (int *)#
return 0;
}
7-逻辑运算符.c
#include <stdio.h>
int f1()
{
printf("this is f1\n");
return 0;
}
int f2()
{
printf("this is f2\n");
return 1;
}
int main()
{
int a = 1, b = 0;
if (f1() && f2()) //短路原则:如果条件1不成立,则不会判断条件2
{
printf("helloabcd\n");
}
if (a && b) //逻辑与 两个表达式都要成立
{
printf("helloworld!\n");
}
if (a || b) //逻辑或 有一个表达式成立就行
{
printf("this is test\n");
}
return 0;
}
8-单目运算符.c
```c
#include <stdio.h>
int main()
{
int i = 1;
//i = i + 1;
i++; //等价于i = i + 1
++i;
int num = 10;
printf("%d\n", num++); //执行num所在语句之后,num的值加一
printf("%d\n", ++num); //执行num所在语句之前,num的值加一
num = 10;
num += num++; //num += num; num = num + num
printf("num = %d\n", num);
num = 10;
num += ++num; //num = num + 1; num += num;
printf("num = %d\n", num);
return 0;
}
9-条件运算符.c
#include <stdio.h>
int main()
{
int a = 1, b = 2;
int max;
max = (a > b) ? a : b;
printf("%d\n", max);
//(a > b) ? a : b = 100; //C语言中,条件运算符不能作为左值使用 2 = 100;
return 0;
}