首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【C 语言】指针间接赋值 ( 直接赋值 和 间接赋值 | 在子函数中间接赋值 )

文章目录 一、直接赋值 和 间接赋值 二、在子函数中间接赋值 一、直接赋值 和 间接赋值 ---- 在 函数体 内部 , 声明普通变量 , 直接赋值 : 直接修改该变量 , 称为 直接赋值 ; 简介赋值...: 将该变量的地址 赋值 给指针 , 通过 指针 修改内存中的变量数据 , 称为 间接赋值 ; 代码示例 : #include #include int main...NULL 初始值 // NULL 就是 0 char *p = NULL; // 第一次打印 a 变量值 printf("a = %d\n", a); // 直接修改...变量 a 的值 a = 10; // 第二次打印 a 变量值 printf("a = %d\n", a); // 将 a 的地址赋值给 指针变量 p p =...NULL 初始值 // NULL 就是 0 int *p = NULL; // 第一次打印 a 变量值 printf("a = %d\n", a); // 直接修改

3.8K10

谈谈C语言中的赋值运算符

在C语言中,赋值运算符很常用,常见的运算符有:=、+=、-=、*=、/=。...赋值运算符能简化代码,我们要算一个数加二,完整的代码可以写成 a = a + 2;如果用上了赋值运算符,则可写成 a += 2。下面将会详细介绍C语言支持所有的赋值运算符。...C语言支持的所有赋值运算符,如下表所示: 运算符 解释 例子 = 简单的赋值运算符 A=1相当于将1赋值给A += 加且赋值运算符 A+=1相当于A=A+1 -= 减且赋值运算符 A-=1相当于A=A...-1 *= 乘且赋值运算符 A*=1相当A=A*1 /= 除且赋值运算符 A/=1相当A=A/1 %= 去余且赋值运算符 A%=2相当A=A%2 赋值运算符 A>= 右移且赋值运算符 A>>=2等价于A=A>>2 &= 按位与且赋值运算符 A&=2等价于A=A&2 ^= 按位异或赋值运算符 A^=2等价于A=A^2 |= 按位或且赋值运算符 A|=2等价于A

1.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    c语言中指针赋值问题,关于C语言指针赋值的问题「建议收藏」

    为方便各位小伙伴更好的学习C语言,武林技术小编为此给大家整理了一批资料,供大家交流学习,下面就跟随武林技术频道的编辑一起来先来看看关于C语言指针赋值的问题。...:22: 警告: 赋值时将指针赋给整数,未作类型转换 test.c:23: 警告: 赋值时将指针赋给整数,未作类型转换 test.c:24: 警告: 赋值时将指针赋给整数,未作类型转换 test.c:25...,所以在前面的调用时候,不能单纯的写set[i].而是传指针过去....(uchar *)的强制类型转换是为了配合(uchar *p). ——————————————- 应该注意的2点是: 1.给指针只能传地址,不能传值.否则要做强制类型转换. 2.在做类型转换和赋值时候,...以上就是关于C语言指针赋值的问题,想必都已有了一定的了解,更多关于C语言的内容请继续关注武林技术频道。

    1.6K10

    到底能不能越过C直接学C++?

    其实这个问题不难,就是直接了解两者的联系和区别就可以给出答案。下面我们来看看他俩到底有什么关系。...好像是在C的基础上加了又加好多东西而变成“C加加”的。 1983年,贝尔实验室的Bjarne Stroustrup在C语言基础上推出了C++。...C++进一步扩充和完善了C语言,是一种面向对象的程序设计语言。 在计算机科学中,C++仍被称为C语言的上层结构。它最后得名于C语言中的“++”操作符(其对变量的值进行递增)。...Stroustrup说:“这个名字象征着源自于C语言变化的自然演进”。这样看来C语言和C++是有血缘关系的。 2、从实质上看 C语言是C++语言的一个子集。...总结: 综合上面的信息,就目前学习C++而言,可以认为它是一门独立的语言,它并不依赖C语言,我们可以完全不学C语言,而直接学习C++。

    1.1K40

    C语言中的结构体,结构体中数组初始化与赋值

    最近写c语言中的结构体遇到了些问题,从网上找了些资料如下: 结构体是连续存储的,但由于结构体中成员类型各异,所以会存在内存对齐问题,也就是内存里面会有空档,具体的对齐方式这里 暂不讨论; 1.结构体的定义和赋值...结构体是可以直接初始化的,在定义的时候,就可以初始化,而且如果你的结构体中恰好有字符数组的话,这个时候初始化是不错的选择,原因很简单,字符数组只能定义的时候直接初始化 后来就不可以了,后来你就只能用...成员列表; }; struct 结构体名 变量名2; 第3种: typedef struct 结构体名 { 成员列表; }结构体别名; 结构体别名 变量名3; 访问结构体成员的2种方式: 1、直接访问...int d; }name; }; 引用c成员的方式: 变量.name.c 2、 内部的结构体通常定义为无名结构体 struct student { int a...; int b; struct { int c; int d; }; }; 引用c成员的方式:变量.C 发布者:全栈程序员栈长,转载请注明出处

    3.9K30

    【C++】C++ 语言对 C 语言的加强 ④ ( C 语言中的三目运算符 - 不能作为左值 | C++ 语言中的三目运算符增强 | C 语言中三目运算符作为左值使用 )

    语言中 三目运算符 不能作为左值 ---- C 语言中 , 表达式的结果 是 放在 寄存器 中的 , 因此 表达式 的结果 是一个具体的值 , 值 只能读取 , 不能写入 ; 上述代码中 , 三目运算符...语言直接返回表达式的值 , C++ 语言返回的是表达式 , 不会求值 ; C++ 中的 三目运算符 返回的事一个 内存空间地址 , 也就是 表达式变量 的 内存首地址指针 ; C++ 中的 三目运算符...语言中 三目运算符 作为左值使用 ---- C 语言的 三目运算符 返回的是计算完成之后的值 , 因此 该返回值 不能作为 左值使用 , 不能被赋值 ; C++ 语言中的 三目运算符 返回的事 变量本身..., 本质是第一个地址 , 可以被赋值 , 既可以作为左值 , 又可以作为右值使用 ; 有个特殊情况 : 如果 三目运算符 返回的是一个常量值 , 那么 C++ 中该返回值不能作为左值 , 也是会报错的...include int main() { int a = 10; int b = 20; // 尝试 为 三目运算符 表达式赋值 // 该行代码直接报错

    55120

    使用C语言中的头文件有什么技巧和注意事项吗?为什么不直接包含C文件呢?

    从事嵌入式开发多年,对于C语言使用的频率比较多,现在讲讲C语言在平时编程工作中经常出现的一些问题,就以楼主的题目为切入点分析归纳下,分享给正在使用或者学习C语言的小伙伴 ?...C语言头文件有什么用处 在平时项目开发过程中特别是几个项目组在一起工作的时候,有的时候代码不是完全开放的,这个时候头文件和库的作用就体现出来了,在头文件中可以看到这个模块使用的结构体,以及静态变量或者定义的一些宏...就可以使用printf函数打印东西了,有时候发现不带头文件有些系统函数也能被调用起来,主要C语言比较灵活,这种一般在编译的时候会处警告,搞不影响编译通过,C语言的编译通常来讲比较随意,所以在运行过程中可能出现崩溃现象...所以后续的C++加强了语法检查,一般在初学c++的泛型编程都会有一种压抑感觉,这是由于C++语法特性决定的,这种编程语言在嵌入式开发过程中使用的也是比较多。 ?...使用C语言头文件需要注意事项 头文件的里面主要声明一些函数列表,定义一些宏,还会定义一些核心结构体,还会有一些静态全局变量,头文件中尽量不要使用全局变量,因为全局变量在管理上会显得麻烦很多,增加出现问题的概率

    1.7K30

    为什么 C++ 中需要内存分配器,而不能像 C 语言一样直接从操作系统申请内存

    本文将探讨为什么 C++ 中需要引入内存分配器,而不能像 C 语言那样直接通过 malloc 或系统调用来申请内存。...这些系统调用直接与操作系统的内存管理交互,为程序分配大块的虚拟内存。然而,这种方式存在以下问题:性能问题:系统调用是内核模式和用户模式之间的交互,通常开销较高。...如果每次内存分配都直接调用操作系统接口,STL 的性能将难以接受。对象的构造与析构:C++ 的对象模型要求在分配内存时自动调用构造函数,在释放内存时自动调用析构函数。...类型安全和自动管理:内存分配器与 C++ 的构造函数和析构函数机制集成,确保对象生命周期的正确管理。现实中的应用案例游戏引擎:游戏开发中,内存管理直接影响帧率和玩家体验。...总结C++ 中的内存分配器是一种灵活而强大的工具,可以显著提高程序性能并满足不同场景的需求。与 C 语言直接从操作系统申请内存的方式相比,分配器提供了更高的性能、更大的灵活性以及更强的控制能力。

    9510

    C语言中的5种常量以及它们的不同之处

    C编程中的常量只是一些固定的值,在整个程序运行过程中都不能改变。这些固定值也称为字面量。 在外行人的语言中,我们可以交替使用常量和字面量。但是,我们将在本教程中强调这两者之间的关键区别。...声明或定义常量 我们可以通过两种方式将C常量赋值给变量: 使用#define,一个预处理器指令:我们已经在预处理器中详细讨论了#define 使用关键字const:它类似于变量声明,只是我们应该在它之前添加关键字...一旦我们声明了常量,就给它赋值是很重要的。 了解更多关于C语言的预处理程序,看看它是否有用? 下面是一个C语言的程序,它演示了当我们试图修改一个常量的值时会发生什么: ? 输出: ? 3....为了进一步阅读,你应该了解C语言中的数据类型。 4. C语言中常量的类型 在C语言中,根据数据类型的不同,有5种不同类型的常量: ?...比如: const long float pi = 3.14159; const signed int limit = 20; 我们可以使用U和L后缀的不同组合来分别表示无符号修饰语和长修饰语,但要记住只能同时用它们其中一个

    3.6K40

    初识c++:入门基础

    C++兼容C语⾔绝⼤多数的语法,所以C语⾔实现的hello world依旧可以运⾏,C++中需要把定义⽂件 代码后缀改为.cpp 一.第一个c++程序 做好准备我们来写一个Hello world...;以前的定义是“函数” printf("%d\n", rand); return 0; } 因为我们在标准库中有了rand()函数,所以命名冲突,不能使用rand变量来赋值。...因为cont(输出函数),endl(换行符),都是在命名空间std中,它们都在中相当于c语言中的所以我们在这里加上std::cout或者是std::endl。...C++规定半缺省参数必须从右往左 依次连续缺省,不能间隔跳跃给缺省值。 • 带缺省参数的函数调⽤,C++规定必须从左到右依次给实参,不能跳跃给实参。...结果为: 半缺省我们赋值一个另一个用缺省,注意只能从左边缺省不能从右边 还是刚刚列子,稍微修改一下 namespace Way { int Add1(int a int b = 2) {

    7210

    C语言初阶:六.算数操作

    算术操作符:+、-、*、/、%   我们在写C语言代码的时候,必不可少的一定是计算。C语言中为了方便运算,提供了一系列的操作符,其中有⼀组操作符叫:算术操作符。...原因就在于C语言的整数除法是整除,只会返回整数部分,丢弃小数部分 如果希望得到浮点数的结果,两个运算数必须⾄少有⼀个浮点数,这时C语⾔就会进⾏浮点数除法。...这个运算符只能用于整数,不能用于浮点数。...2.2  连续赋值  赋值操作符也可以连续赋值 int a = 3; int b = 5; int c = 0; c = b = a+3;//连续赋值,从右向左依次赋值的 C语言虽然⽀持这种连续赋值...C语言中还有⼀些操作符只有⼀个操作数,被称为单目操作符。 ++、--、+(正)、-(负) 就是单目操作符的。

    3200

    C语言(2)----数据类型、变量以及操作符

    1.数据类型介绍 数据类型是c语言中用来描述生活中各种数据的一种分类,例如年龄,体重等等。...sizeof 运算符的返回值,C 语⾔只规定是⽆符号整数,并没有规定具体的类型,⽽是留给系统⾃⼰去决定, sizeof 到底返回什么类型。...C 语⾔提供了⼀个解决⽅法,创造了⼀个类型别名 size_t ,⽤来统⼀表⽰ sizeof 的返 回值类型。...C语⾔中把经常变化的值称为变量,不变的值称为常量。 从第一点我们可知数据类型是用来描述生活中各种数据的。而不同的数据类型也要对应实际生活不同的事物。 例如,年龄是整数,故用int。...在c语言中,像+,-,*,/等等的符号,被称为算术操作符,也叫做运算符。

    11610

    什么是多态?

    为满足移动端和PC端的双重阅读体验,以及文章质量的保证,开始重构的以及新写的文章都会基于 “语雀” 平台编写,公众号会同步刚发布的文章,但随后的修改或者更新只会在语雀中维护。...在面向对象语言中,接口的多种不同的实现方式即为多态。...引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作 —— Delphi4...public static void useAnimal(Animal a) { a.eat(); //还可以写其他方法 } } 直接创对象调用对应方法。...AnimalTool.useAnimal(c); AnimalTool.useAnimal(c2); } } 4.2 弊端 4.2.1 不能使用子类的特有功能 如果想使用,一种方法就是创建子类对象调用方法

    1.2K10

    C语言:操作符详解

    一、算术操作符 C语言中为了方便计算,提供了算数操作符,分别是:+,-,*,/,% 由于这些操作符都是有两个操作数(位于操作符两边),所以这种操作符也叫做双目操作符。...赋值是从右往左依次赋值的!!! C语⾔虽然⽀持这种连续赋值,但是写出的代码不容易理解,建议还是拆开来写,这样⽅便观察代码的 执⾏细节。...2.2 复合赋值符 在写代码时,我们经常可能对⼀个数进⾏⾃增、⾃减的操作,如下代码: int a = 10; a = a+3; a = a-2; 这样代码C语⾔给提供了更加⽅便的写法: int a =...10; a += 3; a -= 2; 所有的复合赋值符: += -= *= /= %= >>= <<= &= |= ^= 三、单目操作符 C语言中有一个操作符只要一个操作数...//表达式1 a*b + c*d + e*f 关于优先级,我们只能保证相邻操作符的优先级是*比+高,而不能保证第三个*比第一个+早执行,因为不相邻所以表达式的计算机顺序可能是: a*b c*d a*b

    18310

    python学习历程之----基础篇(二)

    )或者3.5(小数),或者是“hello,world”(字符串)等等,在c语言中,变量(一个可以变化的量)是需要实现定义才可以使用,但是Python里面就比较简单,可以直接使用,举个例子:C语言中,如果你要定义一个变量...,并赋予它一个值,你必须首先定义,然后才能赋值,其实在前一篇文章中,大家就已经见识到,变量的定义了,只是当时小编没有说明而已,下面来看一个实际的例子: # -*- coding:utf-8 -*- #...在C语言中,我们定义变量a=5的正确步骤如下 # int a; # a=5; 然而在Python中你就不需要这样了,可以简称为,赋值即定义,详见如下 Python中,常见的数据类型有以下几种 整型:...功能就是显示括号里面的内容在屏幕上,而现在我们来学习一下它的对头函数,有打印(输出)肯定有输入函数啊,于是,input()函数诞生了,语法很简单,请看下面的代码实践: input()函数里面可以输入提示语,...简单点就是说函数里面不需要输入什么东西,只有我们使用就会自动执行,就好比我们事先约定某人做某事,只要我们一通知他,他就会做相应的动作,下面请看代码实践: 如上图,def 就是定义函数时必须使用的一个标识语,

    1.1K20

    【C++】初识C++(下)

    ⽐如:⽔壶传中李逵,宋江叫"铁⽜",江湖上⼈称"⿊旋⻛";林冲,外号豹⼦头; 类型& 引用别名 = 引用对象; 注:这里的&跟c语言中的取地址符号虽然一样,但作用完全不一样,大家不要混淆...C++的引⽤跟其他语⾔的引⽤(如Java)是有很⼤的区别的,除了⽤法,最⼤的点,C++引⽤定义后不能改变指向, Java的引⽤可以改变指向。...: “ra”: 不能给常量赋值 //ra++; // 这⾥的引⽤是对 b 访问权限的缩⼩ int b = 20 ; const int & rb...= b; // 编译报错: error C3892: “rb”: 不能给常量赋值 //rb++; return 0 ; } #...• 引⽤在初始化时引⽤⼀个对象后,就不能再引⽤其他对象;⽽指针可以在不断地改变指向对象。 • 引⽤可以直接访问指向对象,指针需要解引⽤才是访问指向对象。

    6610

    【C语言】全网最简洁易懂博客,硬软件方向专业刚接触C小白同学肯定有收获

    C语言的基本语法 2.1 变量和常量 在C语言中,变量是用于存储数据的命名存储单元。常量则是在程序运行期间不可更改的数据。...变量声明的基本语法如下: 数据类型 变量名; 例如,声明一个整数类型的变量age并赋值为25: int age = 25; C语言中的变量命名规则: 变量名只能包含字母、数字和下划线,且不能以数字开头...字符在C语言中实际上是一个整数,表示字符的ASCII值,例如字符’A’对应的ASCII值为65。...C语言中提供了多种运算符,可以分为算术运算符、关系运算符、逻辑运算符和赋值运算符等。...结束语 学习C语言的基础知识是计算机科学和编程领域的第一步。理解变量、数据类型、运算符、控制结构、数组和函数等概念有助于编写结构清晰且功能强大的程序。

    15310
    领券