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

kotlin做网站seo免费培训视频

kotlin做网站,seo免费培训视频,电商客服外包加盟代理,线上产品推广方案C语言运算符优先级表&#xff08;由上至下&#xff0c; 优先级依次递减&#xff09; 运算符结合性() [] -> .自左向右 ! ~ -- - (type) * & sizeof自右至左* / % 自左向右 - 自左向右<< >> 自左向右< < > > 自左向右 ! 自左…

C语言运算符优先级表(由上至下, 优先级依次递减)

运算符结合性
()  []  ->  .自左向右
 !  ~  ++  --  -  (type)  *  &  sizeof自右至左
*  /  % 自左向右
+  - 自左向右
<<  >> 自左向右
<  <=  >  >= 自左向右
==  != 自左向右
自左向右
自左向右
自左向右
&& 自左向右
|| 自左向右
?: 自右至左
assignments 自右至左 
自左向右

 (来自C陷阱与缺陷)


 


 

对于( )  或者  [ ] 的优先级是最高的

于是对于  *p[2]  结合的方式应该是   *(p[2])    对于  (*p)[2]  显然结合方式是括号中的 *p 优先于 [2]

具体

char *p[2]  表示p是一个存储指向char类型数据的指针的数组

char (*p)[2]  则表示*p是一个拥有两个char类型元素的数组,那么p则表示指向这个数组的指针

void test(){char *p1[2];char (*p2)[2];printf("p1----%d\n", sizeof(p1));printf("p2----%d\n", sizeof(p2));return;
}

得到的结果是

可以看到p1表示的是一个拥有两个(char *)类型的数组,一个指针占有4个字节,俩个当然是8个字节

而p2仅仅就只是一个指针,只占有4个字节

常用用途


  • 对于  *p[]

在main函数的参数中有使用到,其中的 char *argv[]的argv就是一个指针数组,用来存储函数调用时传进来可变个数的参数

(详细:利用 gdb 探究main(int argc, char *argv[]){} 中的char *argv[]

int main(int argc, char *argv[])
{something you want to do;return 0;
}

比如可以这样

char *pp[2] = {"hello", "world",};

pp[0]存储字符串"hello"的第一个字符的地址,pp[1] 存储字符串"world"的第一个字符的地址

printf("%s\n", pp[0]);

将会打印出 hello


  • 对于  (*p)[]

无疑就是可以作为二维数组的引用

其实二维数组的本质也是一维数组,那么当我们定义一个二维数组的时候为什么不可以使用像引用一维数组的那样的指针来引用二维数组呢?

错误样例

void arrays(){int nums[3][4] = {0};int *pn = nums;
}

原因就是二维数组其实就是一个成员是一维数组的一维数组,所以它的类型是应该是数组类型

而这里的pn所指的类型是int,就会出现类型不匹配的问题

正确的方式是

void arrays(){int nums[3][4] = {0};int (*p_nums)[4] = nums;
}

这样的p_num是指向类型为数组的指针,与nums的类型相匹配


补充

二维数组在内存中的存储问题

示例代码

#include <stdio.h>
#include <stdlib.h>int main()
{/*定义char类型便于观察地址,因为char只占一个byte*/char chars[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12},};printf("-------------------------------------------------------------------\n\n");for(int i = 0; i < 3; ++i){for(int j = 0; j < 4; ++j){printf("%5d(%d)", chars[i][j], (int)&chars[i][j]);}printf("\n");}printf("\n-------------------------------------------------------------------\n");printf("%d\n", sizeof(chars));printf("%d\n", (int)chars);printf("%d\n", (int)(chars + 1));/*移动了4个元素,行移动*/printf("-------------------------------------------------------------------\n");printf("%d\n", sizeof(chars[0]));/*可以看作是一维数组的第一个元素的地址 形如 一维数组中的 &array[0]*/printf("%d\n", (int)&chars[0]);/*可以看作就是一维数组里的第一个元素是数组,它相当于一个数组名表示数组地址  形如  array*/printf("%d\n", (int)chars[0]);printf("-------------------------------------------------------------------\n");return 0;
}

输出

得到的结果以及代码注释已经可以说明一些问题了,就不再重复


本节完...... 

转载于:https://www.cnblogs.com/xinglichao/p/9210132.html

http://www.lbrq.cn/news/2756989.html

相关文章:

  • 记事本怎么做网站图片链接怎么进行网站关键词优化
  • 大庆公司做网站怎样制作网页设计
  • 自学编程网站广州seo优化公司
  • 上海做网站多少钱seo引擎优化是什么
  • 小榄公司网站建设著名的网络营销案例
  • 企业查查app下载seo搜索引擎优化课程总结
  • 哪个网站做废旧好手机百度收录提交入口
  • 武汉网站建设团队seo网站推广软件
  • 晋江网站开发谷歌推广新手教程
  • java程序员转网站开发怎么做app推广
  • 论坛网站地图怎么做成人馆店精准引流怎么推广
  • 做暖暖视频网站有哪些百度推广关键词技巧定价
  • 医疗协助平台网站建设方案我想接app纯注册推广单
  • 连云港专业做网站江北seo页面优化公司
  • 做宣传单页的网站汽车营销活动策划方案
  • 做网站租服务器一年多少钱自己的网站怎么做seo
  • 做网站之前要安装什么搜索引擎网站优化和推广方案
  • 设计师网站pintset关键词林俊杰百度云
  • 西安网站建设公司哈尔滨百度推广联系人
  • 做网站 收费广告推广方案怎么写
  • app软件下载安装官方免费下载文章优化软件
  • wordpress根据用户名生成头像百度关键词优化多久上首页
  • 手机如何创建简易网站广东网络推广运营
  • 做电影网站需要用什么空间三只松鼠搜索引擎推广
  • 淄博网站建设至信网络亚马逊提升关键词排名的方法
  • 网上兼职做网站网站百度收录批量查询
  • 搞个竞拍网站怎么做seo公司重庆
  • 网站和app区别与联系广州google推广
  • vs可以做网站吗最火网站排名
  • 网站域名列表怎么填写seo任务
  • 智能汽车领域研发,复用云原生开发范式?
  • Redis面试精讲 Day 24:Redis实现限流、计数与排行榜
  • rt-thread audio框架移植stm32 adc+dac,对接cherryusb uac,进行录音和播放
  • 7 索引的监控
  • C# Newtonsoft.Json 反序列化子类数据丢失问题
  • vscode无法检测到typescript环境解决办法