当前位置:首页 » 编程语言 » c语言指针输出值
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言指针输出值

发布时间: 2022-08-21 01:45:21

1. c语言输出指针的值.

把pAdd打印到字符串里。
盗用一些楼上代码哈~
#include
<windows.h>
#include
<string.h>
void
main()
{
char
*pAdd;
char
str[20]
=
{0};
sprintf(str,
"%08x",
(long)
pAdd);
MessageBox(NULL,str,"My
程序",MB_OK);
}

2. c语言中如何借用指针输出字符串

使用指针输出字符串有以下几种方式:

1、使用printf 函数进行输出,其使用的格式转换符为%s,如

char*str="test";//指针指向一个字符串

printf("%s ",str);//输出str指向的字符串

2、使用puts函数进行输出,如

char*str="test";

puts(str);//输出str指向的字符串,会自动多输出一个换行

3、使用自定义函数进行输出,如

voidmyPuts(char*str)//自定义输出函数

{

if(!str)return;

while(*str!=''){

putchar(*str);

str++;

}

}

char*str="test";

myPuts(str);

(2)c语言指针输出值扩展阅读:

C++指针与字符串

1、C语言里没有字符串数据类型,要想获得字符串的表示形式利用字符数组

#include<iostream>

using namespace std;

#include<stdlib.h>

void main()

{

char ar[]={'a','b','c','d'};

cout<<ar; //字符串后无结束符,会有多余打印

cout<<endl;

char br[]={'a','b','c','d',''};

cout<<br;

cout<<endl;

char cr[5]="abcd"; //字符串结尾默认隐藏了

cout<<cr;

system("PAUSE");

}

2、C语言里没有字符串数据类型,要想获得字符串的表示形式利用字符指针

#include<iostream>

using namespace std;

#include<stdlib.h>

void main()

{

char *p="hello world";

cout<<p;

//整形的指针,打印指针时只能打印其内部地址

//字符指针,打印指针时也是地址,但是这个被看作字符指针后,会打印该指针指向地址内存放的字符串,打印直到遇到为止

system("PAUSE");

}

3、静态常量区的字符串存储及指针访问

#include<iostream>

using namespace std;

#include<stdlib.h>

#include<string.h>

void main()

{

char *p="hello world"; //hello world存放在内存的静态常量区

//指针变量p存储的是该静态常量区的首个字符地址

//不能通过指针修改静态常量区的字符,但是可以通过指针访问

int length=strlen(p);

//strlen计算的是字符串p的有效长度,不算

for(int i=0;i<length;++i)

{

cout<<p[i];

}

system("PAUSE");

}

3. C语言指针输出

第一个函数在调用的时候 把main()中的两个指向字符串的地址复制到形参里面,你交换了形参的两个地址,并没有对地址指向的元素交换。这样在子函数结束的时候,因为你只是把复制的两个地址交换了,而真正main()中的 p、q 是没有变的,所以跟没调子函数一样

而第二个是对地址指向的元素操作,不一样的

4. c语言中指针的输入输出问题 求解答

第四行的指针变量P是不可以输入的,是由系统分配的。而在第11行的指针就是P在和数组的指针比较,但我认为这样写不好,你可以定int变量来控制循环的次数,这样就不用指针变量了。

5. c语言中如何让指针数组中的值输出

给你个代码,希望可以有所启示。
/*在数组中查找指定元素。输入一个正整数n(n<=10),然后输入n个整数存入数组a中,再输入一个整数x,在数组a中查找x*/
#include<stdio.h>
void
main()
{
int
i,a[10],*p,x,n,flag=0;
p=a;
printf("请输入数组元素的个数n,n<=10\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("请输入第%d个元素\n",i+1);
scanf("%d",p+i);
}
printf("请输入要查找的数字\n");
scanf("%d",&x);
for(i=0;i<n;i++)
if(*(p+i)==x)
{
printf("查找成功,下标为%d\n",i);
flag=1;
}
if(flag==0)
printf("Not
found!\n");
}

6. C语言 怎么用指针输出一个二维数组的全部值

C语言的数组(不管多少维)在内存中都是线性储存的。所以用一级指针加偏移就可以访问所有元素。

举个例子,有一个10*10的二维数组a,这样就可以输出:

inta[10][10];

int*p=(int*)a;
inti;

for(i=0;i<10*10;i++)
printf("%d",*(p+i));

7. c语言指针的问题,想问下%d,%i,%p输出的是什么值,而且输出的值代表什么意思

%d 是输出10进制整数
%i和%d用在输出上的时候是一样的
%p输出指针 也就是地址值。

8. C语言指针输出数据问题

这就是规则,格式符%s的含义就是:把对应的值看做一个地址,按字节读取,然后输出读取到的值所对应的ASCII码,直到碰到0为止
p1是个地址,假设p1的值是1000(也就是数组a的起始地址),那么从1000开始依次读取到HIKARI\0 然后输出
如果是*p1 那么*p1是'H','H'的ASCII值是72, 那么printf("%s",*p1); 就是从地址72开始读取,也就是printf("%s",72); 而地址72是不允许用户程序操作的,会出错。
再举个例子:
int a = 4407873;
printf("%s", &a);
会输出ABC 因为变量a内存空间的值按字节看就是'A','B','C','\0'

9. C语言关于指针变量输出

p是指针,先指向数组a的首地址
p++表示先使用p,再执行p=p+1,这是一种简单写法
scanf(”%d“, p++ ); //先向p指向的地址中写入一个整数,然后p指向下一个整数的地址。

10. C语言中变量指针输出问题

假设字符串"this is a book"的地址分布如下:

值 地址
t 0030F8B0
h 0030F8B1
i 0030F8B2
... ...

此时有char *ps="this is a book"; 由于ps是char类型指针变量,它的指针域只能保存地址,我们知道"this is a book"是一个字符串数组且拿到了首元素的地址就可以找到它整个字符串,所以ps的指针域保存了首字符的地址即t的地址0030F8B0,而格式输出符%s,就是输出字符串之意,即从t开始输出直至遇到\0符为止。

如果有printf("%c\n",*ps); 则取ps所指向的地址0030F8B0的值即字符t,换句说就是ps代表指针域即地址0030F8B0,再加上“*”就是取值的意思,合起来就是取地址0030F8B0的值即字符t.