c语言笔记(二)

C语言学习笔记(二)——C语言高级(二) 指针、数组、二维数组、指针运算 阅读详情

gcc:

 

gcc -Wall hello.c -o hello
./hello

执行当前目录的程序要加 ./

gcc -Wall -c hello.c  编译成目标文件
gcc hello.o -o hello  使用link成执行文件


usr/include  usr/local/include  系统头文件目录

since int is the default return type, it could be omitted. (function)

c语言的string类型和全局变量 ???

strlen(s) 字符串的长度 不包含'/0'  <sting.h>

x *=y+1 == x = x*(y+1)

The operators -> and . are used to access members of structures

Character arrays are a special case of initialization; a string may be used instead of the braces and commas notation:
char pattern = "ould";
is a shorthand for the longer but equivalent
char pattern[] = { 'o', 'u', 'l', 'd', '/0' };
In this case, the array size is five (four characters plus the terminating '/0').

leading --- trailing

(*ip)++
The parentheses are necessary in this last example; without them,
the expression would increment ip instead of what it points to,
because unary operators like * and ++ associate right to left.

In evaluating a[i], C converts it to *(a+i) immediately; the two forms are equivalent
pa[i] is identical to *(pa+i). In short, an array-and-index expression is equivalent to one written as a pointer and offset

 

As formal parameters in a function definition,
char s[];  and  char *s;
are equivalent; we prefer the latter because it says more explicitly that the variable is a pointer.

Pointers and integers are not interchangeable.
Zero is the sole exception: the constant zero may be assigned to a pointer,
and a pointer may be compared with the constant zero. The symbolic constant NULL is often used in place of zero,
as a mnemonic to indicate more clearly that this is a special value for a pointer. NULL is defined in <stdio.h>.
We will use NULL henceforth.


char *name[] = { "Illegal month", "Jan", "Feb", "Mar" };  存放指针的数组


The declarations should be studied with some care. The fourth parameter of qsort is
int (*comp)(void *, void *)
which says that comp is a pointer to a function that has two void * arguments and returns an
int.
The use of comp in the line
if ((*comp)(v[i], v[left]) < 0)
is consistent with the declaration: comp is a pointer to a function, *comp is the function, and
(*comp)(v[i], v[left])
is the call to it. The parentheses are needed so the components are correctly associated;
without them,
int *comp(void *, void *) /* WRONG */
says that comp is a function returning a pointer to
different.

dcl dirdcl  ???? 没看懂

struct { ... } x, y, z;
is syntactically analogous to
int x, y, z;
struct maxpt = { 320, 200 };

The parentheses are necessary in (*pp).x because the precedence of the structure member operator . is higher then *. The expression *pp.x means *(pp.x), which is illegal here because x is not a pointer.
Pointers to structures are so frequently used that an alternative notation is provided as a shorthand. If p is a pointer to a structure, then
p->member-of-structure

The structure operators . and ->, together with () for function calls and [] for subscripts, are at the top of the precedence hierarchy and thus bind very tightly. For example, given the declaration
struct {
int len;
char *str;
} *p;
then
++p->len
increments len, not p, because the implied parenthesization is ++(p->len). Parentheses can be used to alter binding: (++p)->len increments p before accessing len, and (p++)->len increments p afterward. (This last set of parentheses is unnecessary.)
In the same way, *p->str fetches whatever str points to; *p->str++ increments str after accessing whatever it points to (just like *s++); (*p->str)++ increments whatever str points to; and *p++->str increments p after accessing whatever str points to.

With lseek, it is possible to treat files more or less like arrays, at the price of slower access.

 

 

C语言学习笔记(二)——C语言高级(一) C语言函数、变量分析、数组、字符串。 阅读详情

相关推荐

c语言笔记二

c语言笔记二

Sapphire521的博客 361

C程序设计(第二版 新版)第五章 习题

1.getline(char *line, int limit) 输出的形式3种。(5.6中遇到) /* getline(char *line,int limit)函数的line结果有3种: 1. 字符串 + 换行符 + EOF 2. 字符串 + EOF (在第一行输入字符串+EOF+换行,在下一行行首输入EOF即可) 3. EOF(在终端的行首输入ctrl+z) */ in

大米粒ing 2489

S4 Hana SD -信贷管理 - 02

在S4版本中,客户的信用管理数据在事务代码BP维护,业务伙伴角色是UKM000。在维护过程中,我们并不能直接输入信贷控制范围这个组织架构,而是需要输入一个信用段,并且在信用段的维度下去维护相应信用管理数据。对于信用段,可以分为主信用段(信用段是0000)和其他临时信用段,我们可以通过配置把次级信用段的客户信贷负债汇总到主信用段。当然,在后台也有配置,会把信用段和信贷控制范围这两者进行关联.3.2SPROIMG > 财务供应链管理 > 信用管理 > 信贷风险监视 > 主数据 > 创建信用段。

weixin_46525734的博客 1968

C语言笔记二

1.所谓的一维数组是指只有一个下标的数组,它在计算机内存中是连续存储的2.在C语言中,一维数组的说明一般形式如下:<存储类型><数据类型> <数组名>[<表达式>]例如:int a[6]:数组名表示内存首地址,是地址常量。sizeof(数组名)是数组占用的总内存空间编译时分配连续的内存,内存字节数=数组维数*sizeof(元素数据类型)注意事项:C语言对数组不作越界检测,使用时要注意定义方式:(声明时列数不能省略,行数可以)

m0_74782750的博客 1274

2026年7月19日 从可插拔到共封装:技术路线研究报告

AI 算力的爆发正在重写数据中心光互连的技术路线。本报告对当前并存的四代光互连架构——

weixin_51184047的博客 596

从工创赛实战到开源:一个高鲁棒性智能物流视觉系统的构建与优化

本文分享了从工创赛实战中构建高鲁棒性智能物流视觉系统的完整经验。针对赛场复杂光线环境,详细阐述了摄像头选型、基于CLAHE和形态学梯度的抗干扰色环识别算法、卡尔曼滤波状态估计以及多线程串口通讯与任务调度等核心优化策略,旨在打造一个稳定可靠的视觉系统,并已将相关代码开源。

weixin_29046035的博客 321

c语言笔记②

个人小白笔记,若有错误纰漏,欢迎指正!

m0_73364309的博客 807

从零到一:用AXI DataMover在Zynq MPSoC上实现高效DMA传输(附Vitis HLS驱动示例)

本文详细介绍了如何在Xilinx Zynq UltraScale+ MPSoC平台上使用AXI DataMover实现高效的DMA数据传输。通过解析AXI DataMover架构、Vivado工程配置、Vitis HLS驱动开发及性能优化技巧,帮助开发者快速构建高性能数据传输通道,并提供了可直接复用的代码示例。

weixin_42520796的博客 428

C 语言学习笔记二

本文是一篇面向编程初学者的C语言入门指南,通过"Hello World"程序详细讲解C语言基础。文章分三部分:首先指导读者创建项目文件并编写代码;接着逐行解析代码含义,包括头文件、主函数、输出语句和返回值;最后详细说明从编写到运行的全流程,涵盖预处理、编译、汇编、链接和执行五个阶段。文中穿插实用技巧、常见错误提示和动手实验建议,采用生动比喻和幽默语言降低学习门槛,帮助读者快速掌握C语言编程基础。

z339521的博客 1008

别再手动配网了!用安信可PB-02模组+PHY Mesh App,5分钟搞定蓝牙Mesh智能灯群控

本文详细介绍了如何使用安信可PB-02模组和PHY Mesh App快速搭建蓝牙Mesh智能灯群控系统。通过5分钟的硬件连接和固件烧录,用户可实现多灯分组控制、场景切换及地理围栏等高级功能,显著提升智能家居部署效率。方案特别适合需要快速实现灯光群控的场景。

weixin_28675839的博客 420

《python算法与数据结构2000讲》算法与数据结构总结

《python算法与数据结构2000讲》算法与数据结构总结

IT 甄选推荐 1104

c语言自学笔记二

幕布笔记链接:二、c学习2-分支和循环 - 幕布

weixin_45876984的博客 218

【BUG已解决】ImportError: cannot import name ‘OpenAI‘ from ‘openai‘ 解决方案

的核心是版本不匹配用确认当前版本如果是 0.x 版本 →升级到 1.x升级后代码语法要同步改为团队协作项目务必在中锁定版本号,避免"我这能跑,你那不能跑"的问题对接国产模型时,只需替换base_url参数,SDK 调用方式完全一致。

一键难忘的博客 1万+

C语言笔记(二)

C语言笔记(二) C语言常用数据类型 一、数值 1.整形(一般用于整数):int 、short、long 2.非整形(一般用于非整数):float、double 二、非数值:char 三、 数据类型 类型说明符 位数 整形 int 32 短整形 short int 16 长整形 long int 32 单精度浮点型

DEANAL的博客 1654

【OpenClaw从入门到精通】零基础入门——OpenClaw核心概念快速理解(2026入门版)

OpenClaw是一个强大的AI代理框架,旨在构建智能化的自动化任务处理系统。随着人工智能技术的快速发展,OpenClaw为开发者和企业提供了一个完整的解决方案,用于创建能够理解、学习和执行复杂任务的智能体。本文将带领零基础的读者快速理解OpenClaw的核心概念,从基础架构到实际应用,为后续深入学习奠定坚实基础。通过本文的学习,你将掌握OpenClaw的基本原理、核心组件和快速上手方法。

一键难忘的博客 327

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

C语言笔记(二)

type 数组名[常量值1][常量值2];// 3行5列:数组有3行,每行有5个元素二维数组的每一行都是一维数组二维数组是逐行初始化如果是不完全初始化,剩余元素默认初始化为0// 结果:{1,2,3,4,5} {6,7,8,9,0} {0,0,0,0,0}// 一行内不完全初始化初始化时行可以省略,列一定不能省略(因为编译器不知道一行该填几个!

J131676的博客 1287

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

初学c语言笔记二 分支语句

此文章由本人学习比特鹏哥c语言b站视频后笔记与感悟

2403_88473751的博客 933

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C语言初学学习笔记二

上面我们讲到数据类型。那么我们要如何运用它呢?类型的作用是用来创建变量的。 那么在C语言中怎么描述常量和变量? 常量 -- 不能改变的量 变量 -- 能够改变的量 在C语言中定义变量的方法 如下图例,先写出主函数int main(){return 0;}框架,int age = 20;创建一个名为age的变量。其中int表示的是age的数据类型,=是赋值的意思,double同理。当然在创建变量的时候也可以不赋值,但是不推荐。打印函数中%d指的是打印类型为整数,%lf对应的是双精度浮点型(doubl

keykilocode的博客 760

C语言学习笔记②_函数

C语言学习笔记——自制函数总结程序 /*苦涩红茶设计的有返回值的函数和递归练习-开发环境:Code::block*/ #include<stdio.h> int imax(int a,int b);///ANSI C int recur(int n); long cloop(int n); long rloop(int n); void binary_calculate(unsign...

Weirdo的博客 448

C语言学习笔记<二>

这个用法的本质是替换。大体用法如下:#define 宏名作用域#undef 宏名(如果没有这一条,代表着作用域是从源码开始到源码结束)具体用法是这样的:a.无参数宏定义#define 宏名标识符 宏体【常量,表达式(加括号,避免意义出错),格式化字符串】标识符:由字母,数字,下划线组成第一个字符必须是下划线或者字母,不可与关键字相同b.带参数宏定义(注意与函数的差别,会略略提到)#define 宏名(形参列表)形参表达式也可以是多条语句,多条语句时使用{}括起来。

m0_74812776的博客 2041

C语言笔记(二):认识C语言基本数据类型

需要注意的是,在初始化 float 类型的变量时,最好在数字后面加上 f 或 F 后缀,以明确表示这是一个 float 类型的常量,否则编译器可能会将其视为 double 类型。不过,在 printf 函数中,%f 也可以用于输出 double 类型的变量,因为 printf 会自动将 float 类型的参数提升为 double 类型。十六进制数3的二进制数是0011,十六进制数5的二进制数是0101,则十六进制数35的位组合是00110101,十六进制53的位组合是01010011。

weixin_60459478的博客 1395

C语言技术笔记(二)

继上文:《C语言技术笔记(一)》

Small_entreprene的博客 969
上一篇: c语言笔记(一)
下一篇: JQuery selector
zhugx_java
博客等级 码龄18年 35粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值