工程实训 学习日志

- 姓名:王星宇 日期:2018.9.3
- 今日学习任务:熟悉Linux虚拟机操作;学习C语言指针、数组的编写,使用。
- 今日任务完成情况:基本跟上老师课堂速度完成程序编写,完成课后作业。


#include <stdio.h>
#include <string.h>

char *mystrcat(char *dest, const char *src)
{
   char *tmp = dest;
   while (*dest)
   dest++;
   while ((*dest++ = *src++) != '\0');
   return tmp;
}
int main()
{
   char str[64] = "123456789";
   char *ptr = "hello";

   mystrcat(str,ptr);
   printf("%s\n",str);

   return 0;
}

关于指针字节:


**指针字节:**

#include <stdio.h>

//sizeof() 关键字
int main()
{
   printf("int %d\n",sizeof(int));
   printf("char %d\n",sizeof(char));
   printf("double %d\n",sizeof(double));
   printf("float %d\n",sizeof(float));
   printf("int * %d\n",sizeof(int *));
   printf("char * %d\n",sizeof(char *));
   printf("double * %d\n",sizeof(double *));
   printf("float * %d\n",sizeof(float *));

   return 0;
}

4字节=32位,1字节=8int *p=&a;    p指针变量  &取地址   *表示p是一个指针
*:定义的时候表示后面的变量是一个指针  int *q;
   使用的时候表示取值                  *q=3;
*p指向a,*p=3表示把3存入a中
**举例:**

#include <stdio.h>

int main()
{
   int a =1;
   int *p= &a;  //是一个指针,指向a

   printf("%p\n",p);   //a的地址
   printf("%d\n",*p);  //a的值

   *p=3;               //把a修改成3
   printf("a =%d\n",a);

   return 0;
}

指针运算:
int a,*pa=&a,*pb;pb=pa;
定义整型a,将a赋值给指针pa,定义指针pb,将pa赋值给指针pb,pa pb都指向a

举例:

#include <stdio.h>
int main()
{
   int x=3,y=0,*px =&x;
   y=*px+5;
   printf("y =%d\n",y);
   y=++*px;               //前置,在执行a所在语句之前,a+1
   printf("y =%d\n",y);
   y=*px++;               //后置,在执行完a所在语句之后,a+1   该语句表示:在a上加4个字节(a是int整型占4个字节)      该语句过程:取值,赋值,地址+1       
   printf("y =%d\n",y);
   return 0;
}

**计算结果:**y=8
y=4
y=4
int a,*p1=&a;
(*p1)++ *p1值+1
*p1++ *p1指向a,a地址+1(a占4个字节,加4个字节)


指针与数组:
int a[10]={1,2,3,4,5,6,7,8,9,0}
int *p=a; //a是数组名,同时也是数组首元素地址,常指针
a和&a 取值相同,但意义不同
a代表数组首元素地址,a+1 加一个元素
&a代表数组地址,&a+1 加一个数组

**举例:
区别:**
int a[5] ={1,2,3,4,5};
int p1 =(int )(&a+1); 指向下一个数组
int p2 =(int )(a+1); 指向第二个元素
int p3 =(int )((int)a+1); 非法访问(指向第一个元素的第二个字节)

*p1[0]
*p2[0]
*p3[0]


  • 今日开发中出现的问题汇总:指针较复杂,还有很多方面都不会或一知半解

  • 今日未解决问题: 指针数组运算等问题不太熟悉

  • 今日开发收获:初步熟悉C语言在Linux环境下编译运行,了解了指针的使用。

  • 自我评价:上课还需提高注意力。

  • 其他:教室太热了,精神不易集中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值