今天下午学习了数据类型本质及变量本质分析(上午课程),现将其总结如下:
1、压死初学者的三座大山:数据数组类型、数据数组类型和数组数据类型指针、数组数据类造型和数组数据类型指针关系
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
void main()
{
int a[10]={1,3,44,2,3,44,5,5,6,67};
printf("a:%d &a:%d\n",a,&a);//a &a大小一样
printf("a+1:%d &a+1:%d\n",a+1,&a+1);//+1 大小不一样
//a &a数据类型不一样 步长就不一样
system("pause");
}
2.数据类型本质是固定内存大小的别名;
3、typedef关键字是对数据类型重新命名,取别名;
4、数据类型大小用sizeof;
int main()
{
int a=10;
int b[10];
printf("int a:%d\n",sizeof(a));//结果为4
printf("int a:%d\n",sizeof(int *));//结果为4
printf("int b:%d\n",sizeof(b));//结果为40
printf("int b:%d\n",sizeof(b[0]));//结果为4
printf("int b:%d\n",sizeof(*b));//结果为4
printf("hello、、、\n");
getchar();
return 0;
}
5、对变量的直接与间接修改
void main()
{
int a=10;
int *p;
p=&a;
//4782172
a=11;//直接修改
printf("%d\n",&a);
printf("修改之前a:%d\n",a);
*((int *)p)=20;//间接修改
printf("修改之后a:%d\n",a);
system("pause");
}
总结:通过内存地址可以修改变量的值,同时也可以对变量直接赋值。