int类型千百面

开头语:大学学了几年C语言后,觉得自己掌握了C语言,高喊精通C语言。工作一年多的现在,想想那时真是不知天高地厚啊,了解的越多,掌握的越多,越感觉到不通不精的越多,越感觉C语言有种浩瀚无边的感觉。

(1) int A;

int 类型变量A,占4字节。

(2) int *A;

int类型指针变量A,占4字节。

(3) int A[n];

int类型的数组A,占4*n字节。

(4) (int *)A[n];

int类型的指针数组A,本质是数组,数组里面存的都是int类型的指针。占4*n字节。

(5) int (*A)[n];

指向二维数组的int类型的指针变量A,指向拥有n个元素的数组,占4个字节。

通常用于二维数组的指向问题,不过这个不常用,反正我工作一年多了,基本没用过。

举例:

int arr[4][4];        //int 类型的二维数组arr,可以想象成,4行4列的一组元素,最多可有16个。

int (*A)[4];          //指向二维数组的指针变量,指向1行元素,每行4个元素。

(6) int A(int);

A是一个函数,返回值的类型为int类型的。占4字节。

(7) int (*A)(int);

A是一个int类型的函数指针,它是一个指针,但它指向的是一个函数,所指向的函数要与它的类型、参数情况相同。

(8) (int *) A(int);

A是一个int 类型指针函数,它的返回值int类型的指针。占4个字节。同 int *A(int)。

(9) const int *A;

A是一个int类型的常量指针,指向常量,可以指向不同地址的常量,但所指向的常量的值是不可改变的。占4字节。同 int const *A。 

(10) const int * const A;

int类型的常量指针,一开始就要进行初始化,后不可更改。占4字节。、

结尾插语:在同一个系统中,同一个类型的任何指针的大小是相同的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常抱歉给你带来困扰。在51单片机确实没有直接支持int类型的定义,只能使用char或unsigned char等8位数据类型。以下是一个使用unsigned char来模拟int的示例代码: ```c #include <reg51.h> #define SEGMENT_PORT P1 // 数码管段选信号的输出端口 unsigned char display[4] = {0, 0, 0, 0}; // 数码管显示的四位数字 unsigned char onesDigit = 0; // 个位数 unsigned char tensDigit = 0; // 十位数 unsigned char hundredsDigit = 0; // 百位数 unsigned char thousandsDigit = 0; // 千位数 void delay(unsigned int ms) { unsigned int i, j; for (i = 0; i < ms; i++) { for (j = 0; j < 125; j++) { // 空循环,延时一段时间 } } } void updateDisplay() { unsigned char i; for (i = 0; i < 4; i++) { SEGMENT_PORT = ~(0x01 << i); // 设置段选信号 P0 = display[i]; // 设置显示的数字 delay(5); // 延时一段时间,使数码管能够显示 P0 = 0x00; // 关闭显示 } } void main() { SEGMENT_PORT = 0xFF; // 将段选信号端口设置为初始状态 while (1) { onesDigit++; // 个位数自增 if (onesDigit > 9) { onesDigit = 0; tensDigit++; // 十位数自增 if (tensDigit > 9) { tensDigit = 0; hundredsDigit++; // 百位数自增 if (hundredsDigit > 9) { hundredsDigit = 0; thousandsDigit++; // 千位数自增 if (thousandsDigit > 9) { thousandsDigit = 0; } } } } display[0] = onesDigit; display[1] = tensDigit; display[2] = hundredsDigit; display[3] = thousandsDigit; updateDisplay(); // 更新数码管显示 } } ``` 上述代码使用了四个unsigned char类型的变量来模拟int类型的数字,并通过自增操作实现数码管数字的动态显示。每个位数的数字都会在达到最大值时自动归零,并递增更高位的数字。 希望这次能满足你的需求。如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值