2

c string(cstring类型)

DEV C++新安装后不能在编辑器中显示中文,运行输出中文也有问题,需要对相关设置进行修改。

同时C中字符串只能通过字符数组和字符指针来存储。

c#从来不是 better Java,这些语言都拿自己对标cpp,现在大家也根本不关注oop。其最牛的地方就是可以像c语言那样完全无gc的写法。

我过去自己写了无gc的字符串和数据结构库,然后再改编译器生成机器码,性能比cpp快,代码量少,编译时间短。unity引擎内部也有,叫做高性能c#,用来替换性能敏感部分的cpp代码,他们也是号称比cpp快。

结构体+裸指针+值类型+预编译指令。直接拿来当c写应该没啥问题,性能比c++快其实我是不信的,但是碾压一众虚拟机语言应该没啥问题。

又开眼界了,C语言没字符串类型!

python有字符串类型,golang也有字符串,js也有字符串类型,以为所有语言都有字符串类型,今天开眼界了,c语言居然没字符串类型!

C语言有只有字符类型,没有字符串类型。要表示字符串你得用字符类型和数组类型一起来表示。字符串字符串,就是一串字符,开始不适应,理解后觉得没毛病。

有点意思!

C语言 第10章 字符串常用函数例题

领导老是说我做表不喜欢保存源文件,看我不分分钟写个宏撑爆部门共享[微笑][微笑][微笑]

宏功能:按照当前时间戳自动命名文件并保存

Sub 自动保存()

Dim c As String

Dim d As String

c = Left(Now, 4) & Mid(Now, 6, 2) & Mid(Now, 9, 5) & Mid(Now, 15, 2) & Mid(Now, 18, 2)

d = ".xlsm"

t = c & d

ThisWorkbook.SaveCopyAs ThisWorkbook.Path &"/" & t

End Sub

c语言写库函数的那些人估计都是天才,思维异于常人!

像字符串拷贝,字符串比较,字符串追加,字符串查找,这些个库函数,写的巧妙。可谓大道至简!

相比自己写的,也只能去模仿,无法去超越。思维估计永远达不到那高度。我等凡人是站在巨人的肩膀上写代码啊![我想静静][我想静静][我想静静]

学术性语言总是不如工程性语言,c++总是充满了书卷气,Programmer needs to be trusted。C语言的精神到是有同样的表达:trust the programmer。

这个哲学在80年代末没问题,可是后来不同哲学的库和框架难以组合就是大问题了,以至于现在比较大的c++库都各自实现一部分标准库已有的功能:字符串,容器,智能指针。特别是那个并发框架,ace还是啥的。

为什么c/c++不流行?一是控制粒度太细,因而开发速度相对慢。显然大家都喜欢轻松一点出活快一点。二是应用领域窄。目前c++的应用场景主要是Java、Python覆盖不到的偏底层的场景,比如游戏引擎、操作系统内核、数据库内核,这些场景需要尽可能减少运行时开销。如果像web应用开发、数据分析这些场景用c++就纯属给自己找不自在了。

三是语法老旧。比如C语言没有布尔类型和字符串类型,写惯了高级语言再看C/C++就很复古,这也是Mozilla开发Rust语言的重要原因。

Rust有高级语言的语法和C/C++的性能,虽然比较难学,但是比C/C++舒服多了,比GoLang更是不知道高到哪里去了。

面试官:请你用c语言模拟实现strstr字符串查找的函数。[奸笑]

精神小伙:三下五除二,给出了图一的代码[惊喜]

面试官:代码有bug,能否优化一下?[奸笑]

精神小伙:三下五除二,发现了bug,给出了图二的代码[送心]

面试官:嗯,不错不错!能否再优化一下?[奸笑]

精神小伙:三下五除二,给出了图三的满分代码[大金牙]

面试官:好小伙!代码简洁,心思缜密,天衣无缝,取反操作,感叹号用的很专业!明天直接来公司上任!月薪3个达不溜//税后喔([憨笑])

#C语言数组#

字符数组:由若干字符型变量组成,形式如下:

char cc[6];

字符数组初始化:

(1)为每个元素赋值

char cc[3] = {'a','b',''}

(2)使用字符串常量赋值

char cc[3] = {"ab"}

字符串以结尾,初始化字符数组时,千万注意内存访问不可越界。

数组与指针:

数组名是地址常量,而指针是地址变量

数组是由有一定顺序关系的某些元素的集合

数组指针是一个指针,其指向数组起始地址的指针,一维数组的数组名是一维数组的指针

*(a+6)即取指针a后面第6个元素的值

数组名  + i 相当于数组名[i]

a[i]     数组的第i元素

a[i] + k   第i个元素的值加上k

a[i++]   先取第i个元素的值,然后i++

a[++i]   i加1,再取第i个元素的值。

for循环三种用法

1、遍历循环

for (循环变量类型 循环变量名称;循环条件;更新语句) 循环体

String[] arr = { "a", "b", "c", "d" }; for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } 打印台abcd2、迭代器循环

String[] arr = { "a", "b", "c", "d" }; List<String> list = Arrays.asList(arr); for (iterator<String> iterator = list.iterator();iterator.hasNext();) { System.out.println(iterator.next());} 控制台信息 abcd3、增强型for循环

for (循环变量类型 循环变量名称 : 要被遍历的对象) 循环体

String[] arr = { "a", "b", "c", "d" }; for (String a : arr) { System.out.println(a); } 控制台 abc

d

————————————————版权声明:本文为CSDN博主「林一天」的原创文章原文链接:

for循环的三种写法_林一天的博客-CSDN博客_for循环

C语言学习(10)

(类c语言)

class main {

function void main(){

do Output.printString("Hello World");

do Output.printIn;//换行

return;

}

}

对于初学者,程序只是一堆存储在文本文件中的字符,所以要做的第一步事情是对该文本进行语法分析,揭示其语义,然后用某种计算机能理解的低级语言来重新表达程序,这个翻译过程(即编译)产生的结果就是生成另外一个包含机器代码的文本文件。

在计算机领域,抽象意味着只考虑“事物要做什么”而不用考虑“如何来做”。所以这种功能性定义必须包含足够的信息以便使用该事物能够提供的服务。事物在实现中的所有内容(技巧,内部信息,细节等)都要对使用该事物的客户隐藏起来。

硬件和软件开发者都会定义抽象(接口),然后留给他人实现。

任何程序在运行之前,首先必须被翻译成某种目标计算机平台的机器语言。这个编译过程十分复杂,于是被划分为若干个抽象层级,这些抽象层一般包含三种翻译器:

编译器

虚拟机

汇编编译器

编译器任务的两阶段:

语法分析

代码生成

我决定后续用Kotlin/Native代替C语言,作为工具类项目的主力编程语言。

经常需要分享一些命令行小工具给朋友,工具需要垮macOS、Windows、Linux三套系统。之前尝试过Java、Python、Ruby、Clojure、JavaScript等,但它们都需要额外安装运行时才能运行,不够轻便。

因此,我一直在寻找一门编程一眼,希望既能像C语言一样编译出小巧且可独立执行的程序;又不像C那么精炼,至少要内置UTF8字符串、列表、映射等常用数据结构;还希望能方便地与C互调;并且,最好有丰富的类库和完善的开发工具!

最近对比了Rust、Go、D、Nim、Julia等编程语言,最后发现还是Kotlin/Native最香!

本文来自网络,不代表本站立场。转载请注明出处: https://tj.jiuquan.cc/a-2379869/
1
上一篇淡泊茶韵悠香:男子潜入别人家生活
下一篇 美景美食追着我:媒体:有城市创新词 混淆对防疫认知

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: alzn66@foxmail.com

关注微信

微信扫一扫关注我们

返回顶部