2、数据类型 、常量、变量和运算符
《ctype》
bool.c
#include <stdio.h>
#include <stdbool.h>
int main(int argc, char *argv[])
{
_Bool a;
// bool a;
a = true;
a = false;
a = -1;
if (a) {
printf("true %d\n",a);
}
else {
printf("false %d\n",a);
}
return 0;
}
char.c
#include <stdio.h>
#include <stdbool.h>
int main(int argc, char *argv[])
{
unsigned char ch;
ch = -1;
printf("ch=%d %c\n", ch, ch);
return 0;
}
运行结果:
float.c
#include <stdio.h>
int main(int argc, char *argv[])
{
float a = 3.14;
double b = 4.5;
printf("%f %lf\n", a, b);
return 0;
}
int.c
计算数据类型范围:
#include <stdio.h>
#include <limits.h>
int main(int argc, char *argv[])
{
printf("%d %d %d %d\n", sizeof(_Bool), sizeof(char), sizeof(short), sizeof(int));;
printf("char:%d-%d\n", SCHAR_MIN, SCHAR_MAX);
printf("shor:%d-%d\n", SHRT_MIN, SHRT_MAX);
printf("int:%d-%d\n", INT_MIN, INT_MAX);
return 0;
}
type.c
数之和加强制类型转换
#include <stdio.h>
#include <limits.h>
int main(int argc, char *argv[])
{
int a = 2, b = 3;
float c = 3.14;
int sum;
sum = (int)(a + b + c);
printf("%d\n", sum);
return 0;
}
《ope》
assigndemo.c
1+2+3+…+100
#include <stdio.h>
int main(int argc, char *argv[])
{
int n = 0, sum = 0;
while (n++ < 100) {
sum += n;
}
printf("sum=%d\n", sum);
return 0;
}
bit1.c
位取非
#include <stdio.h>
int main(int argc, char *argv[])
{
unsigned char x = 0x17, y;
y = ~x;
printf("%#x\n", y);
return 0;
}
bit2.c
位与
#include <stdio.h>
int main(int argc, char *argv[])
{
unsigned char x = 0126, y = 0xac, z;
z = x & y;
printf("%#x\n", z);
return 0;
}
bit3.c
位左移
#include <stdio.h>
int main(int argc, char *argv[])
{
unsigned char x = 0xe4, y = 1;
printf("x=%#x,y=%#x\n", x, y);
y = x << 3;
printf("x=%#x,y=%#x\n", x, y);
return 0;
}
bit4.c
#include <stdio.h>
int main(int argc, char *argv[])
{
unsigned char x = 0x4, y = 1;
printf("x=%#x,y=%#x\n", x, y);
y = x << 1;
printf("x=%#x,y=%#x\n", x, y);
y = x << 2;
printf("x=%#x,y=%#x\n", x, y);
y = x << 3;
printf("x=%#x,y=%#x\n", x, y);
bit5.c
#include <stdio.h>
int main(int argc, char *argv[])
{
unsigned char x = 0x4, y = 2;
x = x | (1 << (y-1));
printf("x=%#x,y=%#x\n", x, y);
return 0;
}
bit6.c
位运算混合
#include <stdio.h>
int main(int argc, char *argv[])
{
unsigned char x = 0x14, y = 3;
x = x & (~(1 << (y-1)));
printf("x=%#x,y=%#x\n", x, y);
return 0;
}
bit7.c
#include <stdio.h>
int main(int argc, char *argv[])
{
int a = 65, b = 0;
printf("%#x %d\n", a, a);
// b = a / 16;
b = a >> 4;
printf("%#x %d\n", b, b);
//b = a % 16;
b = a & 0xf;
printf("%#x %d\n", b, b);
return 0;
}
demo1.c
算数运算符
int main(int argc, char *argv[])
{
int a = 15, b = 8, c;
c = a + b;
printf("c = %d\n", c);
c = a - b;
printf("c = %d\n", c);
c = a * b;
printf("c = %d\n", c);
c = a / b;
printf("c = %d\n", c);
c = a % b;
printf("c = %d\n", c);
return 0;
}
demo2.c
int main(int argc, char *argv[])
{
float a = 15, b = 8, c;
c = a + b;
printf("c = %f\n", c);
c = a - b;
printf("c = %f\n", c);
c = a * b;
printf("c = %f\n", c);
c = a / b;
printf("c = %f\n", c);
// c = a % b;
// printf("c = %f\n", c); error
return 0;
}
demo3.c
#include <stdio.h>
int main(int argc, char *argv[])
{
int a = 8, b = 7;
//if (!(a - b) == 7)
if (!((a - b) == 7))
printf("true\n");
else
printf("false\n");
return 0;
}
demo4.c
#include <stdio.h>
int main(int argc, char *argv[])
{
int a = 8, b = 7, c = 0;
//if ((a - 1) <= b && b++ && a++)
if ((a - 1) < b && b++ && a++)
printf("true:%d %d %d\n", a, b, c);
else
printf("false:%d %d %d\n", a, b, c);
return 0;
}
demo5.c
#include <stdio.h>
int main(int argc, char *argv[])
{
int a = 5, b = 18, c = 0;
//if ((a - 1) <= b && b++ && a++)
if ((a - 5) > 0 || b != 8)
printf("true:%d %d %d\n", a, b, c);
else
printf("false:%d %d %d\n", a, b, c);
return 0;
}
demo6.c
#include <stdio.h>
int main(int argc, char *argv[])
{
int x = 70, y = 10;
//y = x++ > 70 ? x + y : 5;
y = ++x > 70 ? x + y : 5;
printf("x=%d y = %d\n", x, y);
return 0;
}
demo7.c
#include <stdio.h>
int main(int argc, char *argv[])
{
float x = 10.5, y = 1.8, z;
z = (x += 5, y++, x + y);
printf("x=%f y=%f z=%f\n", x, y, z);
return 0;
}
priority.c
#include <stdio.h>
int main(int argc, char *argv[])
{
int x = 1, y = 0, z = 0;
// if (x++ && y++ || ++z)
if (!(x+1)>0 && y++ || ++z)
printf("true:%d %d %d\n", x, y, z);
else
printf("false:%d %d %d\n", x, y, z);
return 0;
}
sizeof.c
#include <stdio.h>
int main(int argc, char *argv[])
{
int a = 5;
long b = 3;
long long c = 9;
printf("%d %d %d\n", sizeof(a), sizeof(b), sizeof(c));
printf("%d %d %d\n", sizeof(int), sizeof(long), sizeof(long long));
return 0;
}
《var_v1》
auto.c
#include <stdio.h>
void fun()
{
auto int a = 1, i;
for (i = 0; i < 5; i++) {
a++;
printf("a=%d\n", a);
}
}
int main(int argc, char *argv[])
{
fun();
//printf("a=%d\n", a);
/*
int i;
for (i = 0; i < 5; i++) {
auto int a = 1;
a++;
printf("a=%d\n", a);
}
//printf("a=%d\n", a);
*/
return 0;
}
part1.c
int global_a = 100;
int global_b = 200;
par2.c
#include <stdio.h>
extern int global_a;
extern int global_b;
int main(int argc, char *argv[])
{
printf("%d\n", global_a);
printf("%d\n", global_b);
return 0;
}
register.c
#include <stdio.h>
int main(int argc, char *argv[])
{
register int a;
//int * p = &a;
return 0;
}
static.c
#include <stdio.h>
int global_a;
void fun()
{
int i;
for (i = 0; i < 5; i++) {
static int a;
//int a = 0;
a++;
global_a++;
printf("a=%d global_a=%d\n", a, global_a);
}
}
int main(int argc, char *argv[])
{
fun();
fun();
fun();
return 0;
}
water.c
#include <stdio.h>
#define W 3.0e-23
#define C 950
int main(int argc, char *argv[])
{
float n;
printf("input n:");
scanf("%f", &n);
n = n * C / W;
printf("%f %e\n", n, n);
return 0;
}
《variable》
demo1.c
#include <stdio.h>
int main(int argc, char *argv[])
{
if (1) {
int a;
printf("a=%d\n", a);
}
// printf("out if:a=%d\n", a);
return 0;
}
demo2.c
#include <stdio.h>
int main(int argc, char *argv[])
{
register int a = 10;
//printf("out if:a=%d %p\n", a, &a);
return 0;
}
extern_static.c
//static int global_a = 100;
static int global_a = 100;
extern_static.c
#include <stdio.h>
extern int global_a;
int main(int argc, char *argv[])
{
printf("global_a=%d\n", global_a);
return 0;
}
static.c
#include <stdio.h>
int main(int argc, char *argv[])
{
int i = 1;
while (i < 5) {
// int a = 0;
static int a = 5;
a++;
printf("a=%d\n", a);
i++;
}
return 0;
}
water.c
#include <stdio.h>
#define W 3.0e-23
#define C 950
int main(int argc, char *argv[])
{
float n, total;
printf("please input:");
scanf("%f", &n);
total = n * C / W;
printf("%e\n", total);
return 0;
}