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

示范校建设平台网站成都电脑培训班零基础

示范校建设平台网站,成都电脑培训班零基础,电商网站建设的关键,宝山网站建设公司初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 C语言的语法很麻拐。 初学者的…

初级代码游戏的专栏介绍与文章目录-CSDN博客

我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。

这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。


        C语言的语法很麻拐。

        初学者的一个常见BUG:

int *a,b;

        试图定义两个指针,却得到了一个指针和一个整数。

        当然了,在后面使用的时候编译器会指出错误,从而发现问题。

        但是为什么C语言要这么设计呢?为什么不涉及成言严格的“类型 变量;”的语法结构呢?

        其实C语言这样设计还是有很多优势的,比如一个复杂的结构,一次性定义结构和结构的指针(下面的例子是typedef,语法规则和变量定义是一样的):

typedef struct{} A,*pA;

        这样一次定义了两种类型:结构A和指向结构A的指针。不然就要用两句:

typedef struct{} A;
typedef A* pA;

        好吧,我承认其实这也没省力多少啊。况且,现在所有编程规范都主张,一行只能定义一个变量,所以这个优势真不重要。

        我们还是验证一下*到底怎么用吧。下面的代码测试了指针定义的几种情形:

#include <stdio.h>
#include <typeinfo>template<typename T>
void f(T x)
{printf("-------------------------------\n");printf("sizeof(x)         : %2zd : typeid : %s\n", sizeof(x), typeid(x).name());
}
typedef struct {}A, *pA;
typedef A* pAA;
int main()
{int* a, b;int** aa, bb;int *const* aaa, bbb;a = 0;b = 0;aa = 0;bb = 0;aaa = 0;bbb = 0;f(a);f(b);f(aa);f(bb);f(aaa);f(bbb);A sa;pA psa=0;pAA psaa = 0;f(sa);f(psa);f(psaa);return 0;
}

        这个代码中的模板函数f用来打印参数的长度和类型,因为是模板,适用于任何类型。

        在VS上用x86配置编译,输出:

-------------------------------
sizeof(x)         :  4 : typeid : int *
-------------------------------
sizeof(x)         :  4 : typeid : int
-------------------------------
sizeof(x)         :  4 : typeid : int * *
-------------------------------
sizeof(x)         :  4 : typeid : int
-------------------------------
sizeof(x)         :  4 : typeid : int * const *
-------------------------------
sizeof(x)         :  4 : typeid : int
-------------------------------
sizeof(x)         :  1 : typeid : struct A
-------------------------------
sizeof(x)         :  4 : typeid : struct A *
-------------------------------
sizeof(x)         :  4 : typeid : struct A *

        看得出来,不仅“*”只约束后面那个变量,连“**”和“*const*”都只约束后面那个变量,有没有办法改变?尝试下面的代码:

	(int) *const* aaa, bbb;(int *)const* aaa, bbb;(int *const)* aaa, bbb;(int *const*) aaa, bbb;

        每一行都是无法编译的。括号怎么加都不对(除了放在变量名后面把变量变成函数指针)。

        这些规则记牢就对了。


(这里是结束)

http://www.yayakq.cn/news/509727/

相关文章:

  • 网站设计连接数据库怎么做企业查询卡
  • 宁波住房与城乡建设部网站创恒建设有限公司网站
  • 做百度网站图片怎么做wordpress横幅广告
  • 京东网站的设计风格小程序开发公司官网
  • php网站开发api如何把网站和域名绑定
  • 鹤壁专业做网站公司手机建站cms系统
  • 网站推广seo方法做网站策划的工具
  • 优质国外网站企业网站app制作价格
  • 新安网站开发全国最火的加盟项目
  • 南宁工程造价建设信息网站潍坊定制网站搭建
  • 建设网站设备预算正规做网站
  • 漳州网站建设点击博大选温州移动网站建设服务商
  • 网站建设中html模板做最优秀的自己演讲视频网站
  • 乐清网站网络公司海南自贸港跨境电商怎么做
  • 怎么做才能让网站快速收录新乡做网站哪家好
  • 长沙功能网站建设网站 子域名
  • 蚌埠百度做网站男女做羞羞事漫画网站免费
  • 备案的网站可以攻击吗网站历史快照
  • 网站改版多久恢复阳谷网站建设公司
  • 景区智慧旅游网站建设百度大搜推广
  • 株洲建设企业网站苏州企业网站建设公司只选亿企邦
  • 保定免费网站制作深圳知名网站设计公司排名
  • 龙华附近网站建设公司福州营销网站建设模板
  • 山东企业网站建设哪家好南昌做企业网站
  • 营销网站建设的公司万网网站域名注册
  • 池州网站建设哪家好今天广州新闻最新消息
  • 网站开发 后端服务供求信息平台
  • 北京制作网站报价h5动态页面
  • 英文网站seo方案天水 网站建设招聘
  • php个人网站wordpress 糗百