当前位置: 首页 > news >正文

【C语言day14】

#include<stdio.h>int fun(char* s)
{char* t = s;while (*t++);return(t - s);
}int main() {char s[] = "abc";int n = fun(s);printf("%d\n", n);//4return 0;
}

循环在*t为0时停止,同时t++,t最后会停在字符串结束的’\0’之后的一个位置,t作为尾部指针减去头部指针就是整个字符串占用内存的字节数,包含\0在内

float a[3]={1.5,2.5,3.5},*pa=a;
*(pa++)*=3;
在*pa=a中指针pa指向a[0]
pa++返回值仍是操作之前的值
*(pa++)取pa指向的地址的值
*(pa++)*=3将该值变为原来的3倍
也就是数组a的第一个值为4.5
由于pa++之后pa指针移动了sizeof(float)个字节
所以pa指向a[1]所以值为2.5
#include <stdio.h>int main()
{int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }, * p = a + 5, * q = NULL;*q = *(p + 5);printf("%d %d\n", *p, *q);return 0;
}
指针q初始化为NULL,接着又解引用指针q,是错误的,对NULL指针是不能解引用的。
char *p[]={"Shanghai","Beijing","Honkong"};
结果为 j 字符的表达式: *(p[1] +3)
p是个char*类型的数组,p[1]拿到字符串"beijing"的首地址,再加3便是'j'的地址,解地址拿到'j'
#include <stdio.h>int main()
{char* p[] = { "Shanghai","Beijing","Honkong" };printf("%c\n", *p[1]);//Bprintf("%d\n", *p[1] + 3);//66printf("%c\n", *(p[1] + 3));//jreturn 0;
}

不同类型指针一般不可以直接赋值

如果企图通过一个空指针来访问一个存储单元,将会得到一个出错信息

指向同一数组的两指针变量进行关系运算可表示它们所指数组元素之间的位置关系

http://www.lryc.cn/news/105136.html

相关文章:

  • 暑假刷题第19天--8/1
  • Java开发中的------修改密码+忘记密码
  • ffmpeg安装
  • Mac电脑目录
  • 一起学算法(栈篇)
  • Ubuntu开机自启服务systemd.service配置教程(Ubuntu服务)(Linux服务)upstart
  • 大数据课程E4——Flume的Channel
  • es6中的Map和Set数据结构
  • MyBatis 框架基本的增删改查
  • Javascript--JSON
  • Rust: error: failed to run custom build command for `openssl-sys v0.9.71`
  • Excel修改日期格式,改变日期的筛选方式
  • 【RabbitMQ(day2)】默认(直连)交换机的应用
  • 谷粒商城第八天-商品服务之品牌管理的整体实现(直接使用逆向生成的代码;含oss文件上传)
  • 阿里云率先荣获容器集群稳定性先进级认证
  • 【SpringBoot笔记37】SpringBoot基于@ServerEndpoint、@OnMessage等注解的方式集成WebSocket
  • PyTorch(安装及卸载)
  • webScoket
  • 【C语言初阶(20)】调试练习题
  • MicroPython ESP32网页实时更新DHT11数据显示
  • JavaWeb之HTML基础篇(一)
  • TVM_深度学习编译器
  • Flutter InheritedWidget 共享状态管理
  • 什么是反射?Java反射?反射的优缺点
  • 小红书2020校招测试开发后端笔试题卷三
  • python数据可视化Matplotlib
  • firewalld防火墙
  • iMacros WebBrowser Component for .NET
  • 3,堆,桶排序,排序总结【p4-p5】
  • 使用langchain与你自己的数据对话(四):问答(question answering)