C语言学的好不好,先上两道题
不想错过我的推送,记得右上角-查看公众号-设为星标,摘下星星送给我!
int main()
{
int a[5]={1,2,3,4,5};
int *ptr=(int *)(&a+1);
printf("%d,%d",(a+1),(ptr-1));
}
问题2:问以下程序的输出结果是什么?
void Exchg(int *px, int *py)
{
int tmp=*px;
*px=*py;
*py=tmp;
}
void main()
{
int a=4;
int b=6;
Exchg(&a,&b);
printf(“a=%d,b=%d/n”, a, b);
}
◆ C程序结构
◆ 数据类型
1、基本数据类型
- int 整型,通常反映了所用机器中整数的最自然长度
- float 单精度浮点型
2、限定符
- short int 16位整型 /long int 32位整型
3、位、字节、字
1GB=1024MB 1MB=1024KB
4、内存编址以字节为单位
5、用户自定义类型
如数组类型,结构体类型,函数类型等,最常用的如 typedef,struct
◆ 定义变量及使用范围
int count
void math_op()
{
int i;
static int j;
if(count==0)
j=0;
j=count;
j=j+1;
}
int main()
{
count=0;
while(1)
{
math_op();
count++;
}
}
◆ 定义常量
常量的分类:
- 数值常量,如125,-50
- 字符常量,如 ‘a’,转义字符\0\n \r \f
- 字符串常量,如”hello”,存储空间会多一个结束标记’\0’
- 符号常量,如宏定义#define,值不能改变也不能被赋值
下面的代码中,PI就被定义为常量,值为3.14159。
#include <stdio.h>
/*定义符号常量PI的值为3.14159*/
#define PI 3.14159
enum boolean {NO,YES}; /*枚举常量*/
int main(void)
{
printf("+125 \n"); /*输出+125并换行*/
printf("-50 \n"); /*输出-50并换行*/
printf("a \n"); /*输出a并换行*/
printf("Hello \n"); /*输出Hello并换行*/
printf("半径为10圆周长:%f \n",2*PI*10); /*计算圆的周长*/
printf("\n"); /*输出0并换行*/
return 0; /*程序无错误安全退出*/
}
◆ 函数的声明及用法
void math_op(int a, int b); /*函数声明*/
void math_op(int a, int b); /*函数定义*/
{
return(a + b);
}
int main()
{
int a=1,b=2;
int count= math_op(a,b); /*函数调用*/
return 0;
}
函数的调用机制:调用一个函数时,系统发生进行如下动作:
(1)开辟该调用函数的栈空间
(2)将当前的运行状态压栈
(3)将返回地址压栈
(4)在栈内为传参分配空间
当被调用函数结束后,进行返回时,系统进行的动作刚好与函数调用时相反:
(1)释放栈内局部变量空间
(2)释放栈内传参空间
(3)退栈,得到返回地址,程序跳转调用处等待
(4)退栈,得到调用前运行状态,恢复调用前运行状态
函数参数的传递方式:
◆ 指针与数组
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。
int i=1;
int *p=&i;
*p=*p+1;
printf(“i=%d,*p=%d”,i,*p);
数组在创建时,我们必须定义数组的类型和大小,数组的大小不能为0,数组中的元素类型都是相同的。
&grade[3]=&grade[0] + 3 * 4
例如:
int grade[5]; /*定义array为包含5个整型数据的数组*/
int *p; /*定义p为指向整型变量的指针变量*/
p=&grade[0];
得捷-毕业设计17节免费课程高能回顾:
课程福利:
硬件免费送:定制PCB尺;Seeed Uino 数块;Xilinx PYNQ粉板;STM32板卡等
获取方式:(请注意:活动已结束)邀请好友关注得捷电子官方微信(必须使用下面二维码关注,否则无法统计),将好友关注截图和昵称发给妮姐(微信/QQ:459888529)。
邀请50人即可获得价值514元的STM32F469I-DISCO一块;邀请30人即可获得价值113元的UCLEO-STM32F401RE一块;邀请10人即可获得价值43.5元得捷电子定制PCB尺子一把。注意:关注不可取消!奖品将在10月底陆续发出。