【C语言学习笔记】操作符、关键字、define 常量和宏、指针、结构体

逻辑操作符
&&     	//和
||     	//或
条件操作符(三目操作符)
exp1 ? exp2 : exp3

exp1成立,exp2计算,整个表达式的结果:exp2
exp1不成立,exp3计算,整个表达式的结果:exp3
例:

if(a > b)
	max = a;
else
	max = b;

=

max = a > b ? a : b;
逗号表达式

从左向右依次计算
整个表达式的结果是最后一个的结果

 int c=(exp1,exp2,exp3);
 
 printf("%d\n",c);

运行结果:

exp3

关键字

类型重命名

typedef

typedef unsigned int u_int;
int main()
{
	u_int num = 1;
	return 0;
}

static

void test()
{
    int a=1;
    a++;
    printf("%d ",a);
}
int main()
{
    int i=0;
    while(i<10)
    {
        test();
        i++;
    }
    return 0;
}

运行结果:

2 2 2 2 2 2 2 2 2 2

修改void test()内

static int a=1;

运行结果:

2 3 4 5 6 7 8 9 10 11

static代替auto修饰int a
auto表示自动创建和销毁
那static应该表示只执行一次创建过程
每次调用函数不在重新赋初值,函数结束不销毁
(本质是改变了变量的存储类型)
static修饰全局变量会使该变量只能在自己所在的源文件(.c)内部可以使用,其他源文件不能使用(extern不可用)

define 常量和宏

define定义符号
#define MAX 1000
define定义宏
#define ADD(X,Y) X+Y

注:

printf("%d\n",4*ADD(2,3));

运行结果:

11

正确书写:

printf("%d\n",4*(ADD(2,3)));

运行结果:

20

指针

%p:打印地址(地址随机分配,每次地址都不相同)

printf("%p\n",&a);

指针变量

int a = 1;
int* pa = &a;

*说明pa是指针变量
int说明pa指向的对象是int类型

解引用操作

*pa = 20;

通过pa的地址找到a

sizeof(int*)

指针的大小在32位平台是4个字节,64位是8个字节

结构体

创建新类型

struct Stu
{
    char name[20];
    int age;
    double score;
};

引用:

struct Stu s = {"张三",20,85.5};

printf("%s %d %lf\n",s.name,s.age,s.score);

结构体指针

struct Stu *ps = &s;

printf("%s %d %lf\n",(*ps).name,(*ps).age,(*ps).score);
printf("%s %d %lf\n",ps->name,ps->age,ps->score);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值