c语言全局指针,C语言全局指针定义

本文目录一览:

c语言定义了两个全局的指针变量,为什么这两个指针变量指向同一地址

C里面好像全局变量 会被自动付值为0

而函数内部的临时变量则不会被付值,而是随机的数值

c语言指针

第一个题:(考的是 指针)

void int sp(int *a){

    int b = 2;

    a = b;    // a 指向 b

    *a = *a * 2;    // 即将 b 的值 乘以 2, b 变为 4

    printf(“%d,”, *a);    // 输出 a 指向的变量的值,即 b 的值 4

}    // 所以 sp() 函数其实就是输出 4

printf(“%d,%d\n”, k, *p);    // 首先输出 k 的值 3,然后输出 指针p 指向的变量k的值3

// 注意,指针p 虽然作为参数传入 sp()函数,但只是将其值赋给函数的形参 指针a

// 指针a 此时虽然也指向了 变量k, 但其随后又指向了 变量b,并修改的是 b 的值

// 因此,指针p 的指向并没有改变,依然指向 变量k

输出结果就是 4,3,3

第二个题:(考的是 指向指针 的 指针,即 指针的 指针)

(由于有指针的指针,建议画图来理解各变量和指针间的关系)

int i = 3, *p = i, **r = p;

// p 指向 整型变量i;r是指针的指针,r 指向 指针p

// 这里把 f(r); 替换为 完整的函数定义,便于理解

void f(int **s) {  // r 和 s 现在拥有相同的值,即它们指向 同一个指针,由于 r 指向的是 指针p,所以 s 也指向 指针p  

int *t = k; // 指针t 指向 全局变量k 

*s = t;    // *s 即 p,因此这条语句等同于 p = t,也就是 指针p 的指向被更改了,它现在和 指针t 一样,都指向 全局变量k 

printf(“%d, %d, %d, “, k, *t, **s);    // 输出 k的值 7,*t 的值 7 (t 指向 k),**s 的值 7(**s == *(p) == 7,因为 s 指向 p,p 又指向 k) 

}

// 由于你的图最后没拍完整,我就当最后是 **r ,即使如果不是,只要你理解了也能自己分析

printf(“%d, %d, %d\n”, i, *p, **r);    // 输出 i 的值 3,*p 的值 即 k的值 7,**r的值 即 k的值 7,**r 的分析和 **s 一样

// 最后输出应该是 7,7,7,3,7,7

这道题就是通过使用 指向指针的指针,从而修改 所指向指针 的指向,对于这道题来说就是指针p的指向。

C语言,全局指针变量可以被修改吗?

可以.程序例子:

#include stdio.h

#include stdlib.h

int *p;

main()

{

int a,b;

p=a;

printf(“%p a=%p\n”,p,a);

p=b;

printf(“%p b=%p\n”,p,b);

return 0;

}

00

我的计算输出:

0012FF7C a=0012FF7C

0012FF78 b=0012FF78

C语言指针的定义

指针就是地址。

你说的是指针变量。

整形变量,浮点变量,字符变量,指针变量。通过起名的规律就知道指针变量是储存地址的。

指针变量和其他变量的用法一样,作用域一样。在一个子涵数中定义指针变量,是局部变量,其他函数是不能用的。

不要把指针变量想的太复杂,地址(指针)也是数据,和其他字符数据,整形数据一样,没什么差异。

当然,全局变量的指针变量当然可以多函数使用。

指针的定义:地址。

指针变量的定义:存储指针的变量。

C语言编程时使用全局变量和使用指针各有什么特点?

全局变量在整个程序中都可以用,也可能生命全局指针。

指针指向一个特定的地址。

C语言指针问题

int * p;

main()

{

int x=1,y=2,z=3;

p=y;//这里让指针p指向y

fun(x+z,y); //传参数为 int 型的 x+z == 4 , 和y的地址

printf( “(1) %d %d %d\n” , x , y , *p); //x = 1, y = 6, *p = 6 这里是因为传参数时传的是地址而且p是全局的指针所以在子函数里面会改变原来变量的值

}

fun(int x , int * y)

{int z=4;

*p=*y+z; //指针p是全局变量 *p = *y + z == 2 + 4 == 6, 这里之后y的值被改变成6了,因为p—y

x=*p-z; // x = *p – z == 6 – 4 == 2

printf( “(2) %d %d %d\n” , x , *y , *p); // x == 2, *y == 6 , *p == 6

}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/198712.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-04 10:26
下一篇 2024-12-04 10:26

相关推荐

  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • Python3定义函数参数类型

    Python是一门动态类型语言,不需要在定义变量时显示的指定变量类型,但是Python3中提供了函数参数类型的声明功能,在函数定义时明确定义参数类型。在函数的形参后面加上冒号(:)…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python定义函数判断奇偶数

    本文将从多个方面详细阐述Python定义函数判断奇偶数的方法,并提供完整的代码示例。 一、初步了解Python函数 在介绍Python如何定义函数判断奇偶数之前,我们先来了解一下P…

    编程 2025-04-29
  • 指针Python:为什么Python中不需要使用指针?

    在Python中,指针的使用不像其他语言一样那么常见。这是因为Python有自己的内存管理方式,所以在大多数情况下,不需要显式地使用指针。那么,为什么Python中不需要使用指针呢…

    编程 2025-04-29
  • Python符号定义和使用方法

    本文将从多个方面介绍Python符号的定义和使用方法,涉及注释、变量、运算符、条件语句和循环等多个方面。 一、注释 1、单行注释 # 这是一条单行注释 2、多行注释 “”” 这是一…

    编程 2025-04-29
  • Python中的队列定义

    本篇文章旨在深入阐述Python中队列的定义及其应用,包括队列的定义、队列的类型、队列的操作以及队列的应用。同时,我们也会为您提供Python代码示例。 一、队列的定义 队列是一种…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • 如何使用HTML修改layui内部样式影响全局

    如果您想要使用layui来构建一个美观的网站或应用,您可能需要使用一些自定义CSS来修改layui内部组件的样式。然而,修改layui组件的样式可能会对整个页面产生影响,甚至可能破…

    编程 2025-04-29
  • OpenJudge答案1.6的C语言实现

    本文将从多个方面详细阐述OpenJudge答案1.6在C语言中的实现方法,帮助初学者更好地学习和理解。 一、需求概述 OpenJudge答案1.6的要求是,输入两个整数a和b,输出…

    编程 2025-04-29

发表回复

登录后才能评论