姓名:曹佳鑫 日期:6月22 号
今日学习任务:数组、指针。
今日任务完成情况:按照老师要求编程,都可以实现结果,代码行200行左右。
今日开发中遇到的问题汇总:无
今日未解决的问题:无
今日开发收获:见上课知识点
自我评价:今天收获一般般,还是不太能理解。
上课知识点:
1.编译的四个人步骤
预处理、编译、汇编、链接
2、数组内存
字节序 (大小端由机器设备决定)
大端:低字节存在高地址
小端:高字节存在低地址 (一般电脑都是小端)
判断大小端:
#include <stdio.h>
unio
void main()
{
}.
a是数组名,也是数组首元素的地址,a+1 加一个元素
&a 数组的地址,&a+1 加一个数组
二维数组
a 数组名,也是数组首元素的地址,a+1 加一行
&a 数组的地址,&a+1 加一个数组
a[0] 数组首行首元素的地址, a[0]+1 加一个元素
*a 数组首行首元素的地址
* [] 一样
思考题
数组a[3][4],哪个不能表示a[1][1]
*(a[1]+1) √a[1]+1加一个元素
*(&a[1][1])√
(*(a+1))[1]√
*(a+5)× 改正: *(*a+5)
#include <stdio.h>
#define SIZE 10
void main()
{
int i;
int a[SIZE] ;
int a[5]={1,2,3,4,5};
int a[5]={1, 2, 3};
for(i=0;i< sizeof(a)/sizeof(a[0]);i++)
{
printf("%d",a[i]);
}
printf("\n");
while("\n")
printf("%p"\n,&a[0]);
printf("%p"\n,&a);
printf("%p"\n,a);
printf("%p"\n,a+1);
printf("%p"\n,&a+1);
}
3、
int 实参
函数 (形参)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void init_memory(char **str) //*str是地址
{
*(str) = (char*)malloc(sizeof(char) * 100);//malloc分配内存空间
}
void main()
{
char *ptr = NULL;//指针占四个字节
init_memory(&ptr);
strcpy(ptr, "helloworld");
printf("%s\n", ptr);
while(1);
return 0;
}
#include <stdio.h>
void print ()
{
printf("helloworld!\n");
}
void show(char *s)
{
printf("%s\n", s);
}
void add(int x, int y)//2给形参分配空间
{ //3传值(值传递 地址传递)
return (x + y); //4执行函数体 5返回 6释放空间!
}
void main()
{
int a =1, b = 2, rseult;
print();
show("hello");
result = add(a, b);//1通过函数名找到函数入口地址
printf("%d\n",result);
printf("%d\n",add);//函数名就是一个地址
while(1);
return 0;
}
1通过函数名找到函数入口地址
2给形参分配空间
3传值(值传递 地址传递)
4执行函数体
5返回
6释放空间
值传递,地址传递
变量的存储类型
关键字:static、exertem 修饰函数
static 修饰局部变量,改变变量的声明周期,直到程序退出
预处理命令
宏定义 #define
自定义函数有什么区别,自定义函数需要自定义空间