C语言概述(三)-- 宏定义、指针、结构体

  1. 宏定义
  2. 指针
  3. 结构体

1、宏定义
     #define
     每个参数加上括号,结果也加上括号
     否则,可能会因为运算的优先级问题导致结果错误

#define ADD(a,b) ((a)+(b))
#define MUL(a,b) ((a)*(b))
void main()
{
	//如果宏定义去掉括号运算结果就可能会出错
	int add = ADD(1, 2) * ADD(3, 4);
	int mul = MUL(1 + 2, 3 + 4);
	printf("%d\n", add); //21
	printf("%d\n", mul); //21
	return 0;
}

2、指针
     内存: 
     内存是电脑上特别重要的存储器,计算机中所有的程序都是在内存中运行的;
     为了有效的使用内存,把内存划分成为一个个小的内存单元,每个单元为1个字节;
     为每个内存单元进行编号,这些编号称之为内存单元的地址。
    
     每个变量都会有其地址:
     举例:

void main()
{
	int i = 1; //int变量有4个字节,指针只存储首地址
	int* p = &i; //p指针变量 = 指针数据;存储地址的变量

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

	*p = 20;
	printf("%d\n", i); //2

	//指针变量大小都为4个字节(在32位平台中)
	printf("%d\n", sizeof(int*));
	printf("%d\n", sizeof(float*));
	printf("%d\n", sizeof(char*));
	printf("%d\n", sizeof(long*));
	printf("%d\n", sizeof(short*));
	printf("%d\n", sizeof(double*));
	return 0;
}

    指针大小:
        32位平台为4字节
        64位平台为8字节

3、结构体
     C语言的类型除了前面提到的基本数据类型外,还有结构体;
     结构体是的C语言有能力描述复杂类型
    
     举例:

struct Student //定义了一个学生结构体
{
    char name[10];
    int age;
};

void main()
{
	//第一种方式
	struct Student stu1 = { "hello", 20 };
	printf("name = %s, age = %d\n", stu1.name, stu1.age);

	//第二种方式
	struct Student stu2;
	stu2.age = 21;
	strcpy(stu2.name, "world");
	printf("name = %s, age = %d\n", stu2.name, stu2.age);
	return 0;
}

更多概述内容详见:

C语言概述(二)-- 注释,选择、循环结构,函数,数组,操作符,关键字C语言概述(一)-- 数据类型、变量和常量、字符串、转义字符
 

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值