C语言笔记第一天

目录

宏定义,函数,格式化显示两位小数

无符号类型

寄存器变量register,别名typedef,防止优化volatile,进制

内置类型输出


宏定义,函数,格式化显示两位小数

#include <stdio.h>
#include <stdlib.h>

//宏定义 将PI替换成3.14
//其实enum和define同样不能取地址,也不会产生非必要的内存分配
#define PI 3.14

double circleArea(double radius)
{
    return PI * radius * radius;
}

int main()
{
    printf("hello world\n");

    //值得一说的是,double和float相比无论是精度还是执行效率都要高哦
    double radius = 0.0;
    double res = 0.0;

    //\n \转移符 \n换行符
    //linux下换行符为\n,windows下换行符为\r\n,不过实际只需要\n就行,并不要人为考虑
    printf("enter radius:\n");

    //从键盘输入,lf为double的占位符
    //输入时需要知道输入到哪里,输入的是什么,也就需要占位符和地址。
    scanf("%lf",&radius);

    //函数调用
    res = circleArea(radius);

    //.2 保留两位小数
    printf("circle area: %.2lf\n",res);

    return 0;
}

无符号类型

#include <stdio.h>

int main(int argc,char * argv[])
{
    //输出 1
    printf("sizeof(char) = %ld\n",sizeof(char));

    // char ch 二进制为 0000 0000
    //最高位0表示正数,1表示负数
    //取值范围为:1111 1111 —— 0111 1111

    return 0;
}

寄存器变量register,别名typedef,防止优化volatile,进制

#include <stdio.h>

int main(int argc,char * argv[])
{
    //声明一个寄存器变量,可以增加运行效率
    //不能对寄存器变量区地址
    //当一个变量频繁使用时IDE会自动优化为register
    register int num = 10;
    //%p 地址的占位符
    //printf("&num = %p\n",&num);

    //定义别名
    //便于代码的移植
    typedef char* STRING;
    STRING str = "xiaoming";
    //%s 字符串的占位符
    printf("%s\n",str);

    //声明一个防止IDE优化的变量
    volatile int num2 = 10;
    //对于IDE优化到寄存器的变量,可以强制取其地址
    printf("%d\n",num2);

    //变量实际上其实就是内容
    int num3 = 10;
    printf("对于整形变量num3,内容就是数字:%d\n",num3);
    int* p = &num3;
    printf("对于指针变量p,内容就是地址:%p\n",p);

    int num4 = 10;
    printf("十进制输出num4:%d\n",num4);
    printf("八进制输出num4:%o\n",num4);
    printf("十六进制输出num4:%x\n",num4);
    //%#加禁止占位符号可以使进制带前缀输出
    printf("十进制输出num4:%d\n",num4);
    printf("八进制输出num4:%#o\n",num4);
    printf("十六进制输出num4:%#x\n",num4);

    //十进制10
    int num5 = 10;
    //八进制10
    int num6 = 012;
    //十六进制10
    int num7 = 0xa;
    printf("num5 = %d,num6 = %d,num7 = %d\n",num5,num6,num7);

    return 0;
}

内置类型输出

#include <stdio.h>

int main()
{
	//整型输出
	short s = 1;
	unsigned short us = 1;
	printf("短整型s:%hd\n", s);
	printf("无符号短整型us:%hu\n", us);

	int i = 2;
	unsigned int ui = 2;
	printf("整型i:%d\n", i);
	printf("无符号整型ui:%u\n", ui);

	long l = 3;
	unsigned ul = 3;
	printf("长整型l:%ld\n", l);
	printf("无符号长整型ul:%lu\n", ul);

	//实型(浮点型)输出	
	
	//浮点型存储方式和整型不同(一部分存储整型,一部分存储浮点型)没有无符号,编译不通过
	/*unsigned float f = 11.11f;
	unsigned double d = 11.11;*/

	//float f = 11.11;	实际上这样写是向下类型转换可能会造成数据截断
	float f = 11.11f;
	printf("单精度浮点数f:%f\n", f);

	//其实除空间外,double无论执行效率还是精度都高于float
	double d = 22.22;
	printf("双精度浮点数d:%lf\n", d);

	//字符型
	char c = 'a';
	unsigned char uc = 'a';
	unsigned char uc2 = 128;
	unsigned char uc3 = 97;
	printf("字符型c:%c\n", c);
	printf("无符号字符型uc:%c\n", uc);
	//ascii码上只有0-127,超出范围没有对应,输出乱码
	printf("无符号字符型uc2:%c\n", uc2);
	//可以用u来占位
	printf("无符号字符型uc2:%u\n", uc2);
	//a的ASCII码对应97 A对应65
	printf("无符号字符型uc3:%c\n", uc3);

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值